реклама на сайте
подробности

 
 
> запись двоичного числа в языке СИ, как ??
buletz
сообщение Feb 19 2007, 10:41
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 4-07-06
Из: Moscow
Пользователь №: 18 554



HEX (16-ричный) формат записи числа 255 (DEC) делается так:
0xFF

а как записать его в двоичном, чтобы понял компилятор СИ?

на PIC-ах было так:
0b11111111

сейчас пишу под ARM-7 , компилятор IAR
он такой записи не понимает
помогите
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex B._
сообщение Feb 19 2007, 12:16
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



Есть, но лучше все-таки ими не пользоваться...

Код
    /*  -------------------------------------------------------------------------
     *  Binary constant macros by Tom Torfs (tomtorfs@village.uunet.be)
     *  Sample usage:
     *  B8(01010101) = 85
     *  B16(10101010,01010101) = 43605
     *  B32(10000000,11111111,10101010,01010101) = 2164238933
     */

#define HEX__(n) 0x##n##LU

#define B8__(x) ((x & 0x0000000FLU) ?   1 : 0)\
               +((x & 0x000000F0LU) ?   2 : 0)\
               +((x & 0x00000F00LU) ?   4 : 0)\
               +((x & 0x0000F000LU) ?   8 : 0)\
               +((x & 0x000F0000LU) ?  16 : 0)\
               +((x & 0x00F00000LU) ?  32 : 0)\
               +((x & 0x0F000000LU) ?  64 : 0)\
               +((x & 0xF0000000LU) ? 128 : 0)

#define B8(d)                   ((unsigned char)B8__(HEX__(d)))
#define B16(dmsb,dlsb)          (((unsigned short)B8(dmsb) <<  8) + B8(dlsb))
#define B32(dmsb,db2,db3,dlsb)  (((unsigned long)B8(dmsb)  << 24) \
                               + ((unsigned long)B8(db2)   << 16) \
                               + ((unsigned long)B8(db3)   <<  8) \
                               + B8(dlsb))


только типы своего компилера проверьте
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.13783 секунд с 7
ELECTRONIX ©2004-2016