undefined123 0 February 19, 2007 Posted February 19, 2007 · Report post HEX (16-ричный) формат записи числа 255 (DEC) делается так: 0xFF а как записать его в двоичном, чтобы понял компилятор СИ? на PIC-ах было так: 0b11111111 сейчас пишу под ARM-7 , компилятор IAR он такой записи не понимает помогите Quote Share this post Link to post Share on other sites More sharing options...
Andy_Mozzhevilov 0 February 19, 2007 Posted February 19, 2007 · Report post HEX (16-ричный) формат записи числа 255 (DEC) делается так: 0xFF а как записать его в двоичном, чтобы понял компилятор СИ? на PIC-ах было так: 0b11111111 сейчас пишу под ARM-7 , компилятор IAR он такой записи не понимает помогите В стандарте С не предусмотрен двоичный формат записи Quote Share this post Link to post Share on other sites More sharing options...
undefined123 0 February 19, 2007 Posted February 19, 2007 · Report post может быть у кого-нибудь есть какие-нибудь готовые макросы для этого дела ? Quote Share this post Link to post Share on other sites More sharing options...
Alex B._ 0 February 19, 2007 Posted February 19, 2007 · Report post Есть, но лучше все-таки ими не пользоваться... /* ------------------------------------------------------------------------- * 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)) только типы своего компилера проверьте Quote Share this post Link to post Share on other sites More sharing options...
mag24 0 February 20, 2007 Posted February 20, 2007 · Report post На самом деле использование бинарных изображений чисел не очень удобно. Гораздо удобнее Hex изображения. Смотря для каких целей вы хотите его использовать. Почитайте руководство на IAR СИ компилятор там есть механизмы для работы с битами. Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 187 February 20, 2007 Posted February 20, 2007 · Report post На самом деле использование бинарных изображений чисел не очень удобно. Гораздо удобнее Hex изображения. На самом деле двоичная запись удобна только в одном случае - при программировании знакогенератора. А в остальных случаях удобнее и нагляднее мнемоническая запись: http://electronix.ru/forum/index.php?showt...mp;#entry203047 Quote Share this post Link to post Share on other sites More sharing options...