Тема: С++
Показать сообщение отдельно

  #14  
Старый 12.11.2007, 23:37
DWORD
Участник форума
Регистрация: 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..
 
Ответить с цитированием