• Приветствую тебя уважаемый гость на форуме, посвященный компьютерам! В дружелюбной обстановке у вас будет возможность обсудить различные технические вопросы, касаемых: компьютеров, ноутбуков, программ для ПК. Обратите внимание, компьютерный форум Hard-Help.ru не коммерческий ресурс, то есть наши модераторы ничего не продают и не хвалят разные товары за деньги. Если это ваш первый визит, рекомендуем почитать справку по форуму. Для создания тем и размещения сообщений необходимо зарегистрироваться. После регистрации и успешной авторизации в темах не будет видна реклама от компании Google, а также появятся дополнительные функции. Желаем Вам приятного общения и новых друзей!

Использование маски

knave

Member
Регистрация
16 Авг 2011
Сообщения
54
Репутация
0
Баллы
6
Нужно при помощи битовой маски (побитовое &) в char в си "перевести" число в двоичную систему методом условий. Т.е. если например при наложении маски получается 1, то он выводит единицу как символ. Далее если 0 - ноль как символ. и получается просто ряд символов из нулей и единиц на вид как число в двоичной.
Вот код:
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{ char a, n;
scanf ("%i", &a);
if (a&128==0) printf ("0"); else printf ("1"); // накладывыем маску для определения первого разряда числа
if (a&64==0) printf ("0"); else printf ("1"); // второго
if (a&32==0) printf ("0"); else printf ("1"); // третьего
if (a&16==0) printf ("0"); else printf ("1"); // четвертого
if (a&8==0) printf ("0"); else printf ("1"); //пятого
if (a&4==0) printf ("0"); else printf ("1"); // шестого
if (a&2==0) printf ("0"); else printf ("1"); // седьмого
if (a&1==0) printf ("0"); else printf ("1"); //восьмого
scanf (" "); }
При таком коде получается всегда число 11111111. Где ошибка?

Добавлено спустя 10 минут 28 секунд:
Тему можно закрывать, допёр)
 
Сверху