BVSH |
Отправлено: 07.09.2004, 13:20 |
|
Не зарегистрирован
|
Я читаю данные через ЛПТ, надо их вывести в ЛистБокс в двоичном формате. Перевожу при помощи itoa и добавляю в ЛБ, но почему то теряются нули, есть подозрения что это происходит в случае смены с 1 на ноль (биты 1->0). Кто нибудь может помочь? Работаю в компиляторе 1.0(это не шутка). |
|
Konstantine |
Отправлено: 07.09.2004, 13:40 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
построй свою ф-цию перевода типа такой:
CODE | void Int_To_Bin(char a,char *str)
{
if (a&0x80) str[0]='0'; else str[0]='1';
if (a&0x40) str[1]='0'; else str[1]='1';
if (a&0x20) str[2]='0'; else str[2]='1';
if (a&0x10) str[3]='0'; else str[3]='1';
if (a&0x08) str[4]='0'; else str[4]='1';
if (a&0x04) str[5]='0'; else str[5]='1';
if (a&0x02) str[6]='0'; else str[6]='1';
if (a&0x01) str[7]='0'; else str[7]='1';
}
| P.S.: кидать в цикл для 1-го байта безсмысленно.
Отредактировано Konstantine — 07/09/2004, 14:44
|
|
AVC |
Отправлено: 07.09.2004, 13:41 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | надо их вывести в ЛистБокс в двоичном формате |
Что то вроде этого?
int val = 0xA5A5;
AnsiString str = "";
for (int i=0x8000; i>= 1; i>>=1) str += (val & i)? AnsiString("1") : AnsiString("0");
резельтат 1010010110100101
Я правильно понял вопрос? |
|