• Добро пожаловать на компьютерный форум Hard-Help. Здесь помогают с ПК и ноутбуками: Windows, драйверы, «железо», программы и безопасность. Мы — некоммерческое сообщество: ничего не продаём и не публикуем оплаченные рекомендации. Модераторы следят за качеством ответов. Если вы у нас впервые, загляните в раздел со справкой и правилами — там коротко о том, как быстрее получить помощь. Чтобы создавать темы и писать сообщения, зарегистрируйтесь. После входа реклама в темах скрывается, а также становятся доступны дополнительные функции. Присоединяйтесь к обсуждению — будем рады помочь!

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

  • Автор темы Автор темы knave
  • Дата начала Дата начала

knave

Member
Регистрация
16 Авг 2011
Сообщения
53
Баллы
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 секунд:
Тему можно закрывать, допёр)
 
Сверху