Как закодировать?

From
Alexey Krasnov (2:5066/196.96)
To
Egor Tsygvintsev
Date
2002-10-06T14:21:18Z
Area
RU.ALGORITHMS
Здравствуй.

 Egor Tsygvintsev => Andrew Ezhguroff, 04 Октябрь 2002 года, 21:34:

 OIK>>> A!!! Перепутал условие с сишным do {} while();
 OIK>>> А в repeat/until там же выход по TRUE, а не по FALSE!!!
 OIK>>> Короче, поправка:
 OIK>>> Надо вместо "until x <> 0;" писать "until x = 0;"
 AE>> Все равно не работает: если у нас, например, десятичное число 192
 AE>> (двоичное - 11000000), то твоя программа выдаст 0000000011 вместо
 AE>> 0000000011000000.
 ET> люди, не мучайтесь :)))

ну давайте тогда попробуем так (писал в голдеде, поэтому могут быть ошибки):

char* Dword2BinStr(DWORD dwData)
{
  static char szStrBuffer[33];
  szStrBuffer[32] = 0;

  DWORD dwMask = 0x80000000;

  for (int nIndex=0; dwMask; dwMask>>=1, nIndex++)
    szStrBuffer[nIndex] = (dwData & dwMask) ? '1' : '0';

  return szStrBuffer;
}

По-моему, проще некуда. Все предельно просто и ясно.

Всего хорошего.
--- GoldED+/386 1.1.4.7. -- : Tricky - Bury the Evidence
 * Origin: Пишите письма ! (2:5066/196.96)