Двоичный код
Такое бывает. Самые простые вещи иногда вылетают из головы!
Подскажите! Как запихать двоичный код в переменную?
Если не понятно, вот пояснения:
int a;
a = 0x00ff // это 16-ричный формат
а как двоичный код записать?
Заклинило!
Такое бывает. Самые простые вещи иногда вылетают из головы!
Подскажите! Как запихать двоичный код в переменную?
Если не понятно, вот пояснения:
int a;
a = 0x00ff // это 16-ричный формат
а как двоичный код записать?
Дружище Jimmy, двоичный, 16-ричный и др. "-ичные" коды - это то, как мы сами записываем или представляем конкретное число. Число 0x00ff в двоичном представлении будет выглядеть так: 11111111, а в десятичном - 255. Но это одно и то же число. Компилятор допускает запись чисел в десятичном (1234), шестнадцатиричном (0ч4d2) и экспоненциальном (0.1234E0) форматах. Может, еще в каких - сейчас не помню - но только не в двоичном. Как правило, если нужно подчеркнуть, что имеет важность двоичное представление числа - например, оно служит битовой маской для сравнения или набором флагов (опций) и т.д. - используется 16-ричный формат записи (как у тебя в примере).
Короче, в двух словах - пример правильный. Так и записывай.
P.S. Зато :-) в C++ есть 8-ричная форма, начинающаяся на 0...
Компилятор допускает запись чисел в десятичном (1234), шестнадцатиричном (0ч4d2) и экспоненциальном (0.1234E0) форматах. Может, еще в каких - сейчас не помню - но только не в двоичном.
Еще в восмеричном, если первая цифра 0 (2Berg: и в С, не только в С++)
Впрочем, если неймется, можешь тайком от всех воспользоваться следующим кодом (расположи его где-нибудь в начале проги):
((b0)|((b1)<<1)|((b2)<<2)|((b3)<<3)| \
((b4)<<4)|((b5)<<5)|((b6)<<6)|((b7)<<7))
#define bin16(b15,b14,b13,b12,b11,b10,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0) \
((bin8(b15,b14,b13,b12,b11,b10,b9,b8)<<8)| \
(bin8(b7,b6,b5,b4,b3,b2,b1,b0)))
Использовать так:
int b = bin16(1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1);
P.S. Это шутка, так делать, мягко говоря, не рекомендуется.