Остаток от деления выдает в тебе математика. Низачот, за прогул занятия по битовым операциям.
Программист сделал бы так:
int c=34;
for (int i=0;i <8;i++) {
if (c & 1)
{ cout << "1";}
else { cout <<"0";}
c = c >> 1;
}
cout << endl;
непонятно чего тут сложного и где можно загоняться?
кстати,этот кусок не выводит двоичное представление числа в общепринятом виде.
если ты подобным образом печатал и проверял на калькуляторе - надо бы сдвигать наоборот влево
и проверять самый старший бит числом 128
[Ответ]
Part!zan 02:40 17.06.2007
Сообщение от netwind:
Программист сделал бы так:
А грамотный программист сократил бы цикл до двух строк, а при желании - и до одной.
J++, если изначально c=0, то и так понятно шо там все ноли.
maximn, рад за тебя
netwind, не, хакир бы на асме написал. или даже в машкодах сразу.
[Ответ]
Потерянный рай 22:34 21.06.2007
Сообщение от Skech:
Дано: переменная типа int, (максимальное значение 255 это для справки)
Надо: Взять по очереди каждий бит и посмотреть 0 или 1
Долго загонялся с >> и логикой, но что-то не получается желаемое...
Плиз, бросьте коду, как это сделать????
Система MSVC 2005, но это не суть..
если для тебя >> и "логика" это загон делай
(X & 1)>0 - true если младший бит выставлен в 1
и дели на два оставшееся число, гоу ту назад 7 раз.
и у int максимальное значение не 255, это для справки. это у тебя в задаче максимальное возможное значение у переменной 255.
[Ответ]
Part!zan 22:12 23.06.2007
Потерянный рай, предлагаю развить условие, а то как-то несерьезно получается:
(X & (int)(log10(100)-.5))!=23*(X/5 - X/(int)(log(148.4131591026)+.5))
[Ответ]