
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
Побитовое чтение на С++
|
||
| Философия, технологии, алгоритмы! |
![]() |
|
|
Опции темы |
|
|
#1 |
|
Пришелец
Сообщений: 992
Регистрация: 22.01.2004
Возраст: 39
|
Побитовое чтение на С++
Дано: переменная типа int, (максимальное значение 255 это для справки)
Надо: Взять по очереди каждий бит и посмотреть 0 или 1 Долго загонялся с >> и логикой, но что-то не получается желаемое... Плиз, бросьте коду, как это сделать???? Система MSVC 2005, но это не суть.. |
|
|
|
|
#3 |
|
Registered User
Сообщений: 1,905
Регистрация: 25.03.2003
|
Остаток от деления выдает в тебе математика. Низачот, за прогул занятия по битовым операциям.
Программист сделал бы так: int c=34; for (int i=0;i <8;i++) { if (c & 1) { cout << "1";} else { cout <<"0";} c = c >> 1; } cout << endl; непонятно чего тут сложного и где можно загоняться? кстати,этот кусок не выводит двоичное представление числа в общепринятом виде. если ты подобным образом печатал и проверял на калькуляторе - надо бы сдвигать наоборот влево и проверять самый старший бит числом 128 |
|
|
|
|
#9 | |
|
Форумец
Сообщений: 338
Регистрация: 21.06.2007
|
Цитата:
(X & 1)>0 - true если младший бит выставлен в 1 и дели на два оставшееся число, гоу ту назад 7 раз. и у int максимальное значение не 255, это для справки. это у тебя в задаче максимальное возможное значение у переменной 255. |
|
|
|