C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вывод в двоичном формате
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
Я правильно понял вопрос?

Вернуться в Вопросы программирования в C++Builder