Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Какой максимально простой код преобразования BCD в двоичный формат?
Отправлено
Dikoy 07 ноября 2008 г. 16:50
У меня есть 3 байта в двоично-десятичном (BCD) формате. Нужно из них получить двоичное четырёхбайтное число типа long.
Самый простой способ: разбить байты по половинам, умножить на 1, 10, 100, ... , 100000 и сложить. Но ИМХО это не совсем оптимально :)
Существуют ли коды или функции, которые делают это экономичнее?
Пишу на IAR 4.30.
Составить ответ | Вернуться на конференцию
Ответы
- #define BCD2BIN(b) (((b)&0xf)+((b)>>4)*10) \ BIN = BCD2BIN(low_BCD_byte)+100*BCD2BIN(mid_BCD_byte)+10000*BCD2BIN(hi_BCD_byte) - MBedder (07.11.2008 17:34:7 80.92.96.19, пустое)
- зачем умножать > чем на 10? "abcd = d + 10 (c + 10 (b + 10a))" - ы (07.11.2008 17:13:31 80.92.98.211, пустое)
- Разбить на биты и "умножить" на 1,2,4,8,10, 20,... и т.д. - argus98 (07.11.2008 17:13:29 81.22.205.230, пустое)
- на это много времени уходит или просто душа "красивого кода" хочет?)) Съэкономленое на "красивом коде" время может быть употреблено на красивых женщин - это оптимально))) - basilmak (07.11.2008 17:02:17 82.142.173.231, пустое)
- Самый простой код - таблицы. - Крок (07.11.2008 16:56:48 62.118.59.14, пустое)