
12.11.2007, 23:37
|
|
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
Провел на форуме: 165671
Репутация:
215
|
|
Ну я вовсе не претендую на звание самого чудесного кода, но вот что вышло у меня:
Код:
unsigned int x, i = 32;
char bits[33]; // Массив, чтобы не вызывать функции ввывода по несколько раз, создаем вот этот буфер
cin >> x;
// Так как вывод должен идти со старших битов, сдвигаем по-тихонечку
//число влево, так как старшие нули нас не интересуют
while (--i && !(x & (1 << 31))) x <<= 1;
bits[i + 1] = 0x00;
for (char k = 0; k <= i;k++)
bits[k] = (x >> 31) | 0x30, x <<= 1;
cout << "\n" << bits;
Ну понятно, что максимальна длина входного числа 0xFFFFFFFF
Последний раз редактировалось DWORD; 12.11.2007 в 23:52..
|
|
|