Перейти к содержанию
    

Двоичное представление числа в KEIL

Согласно этому документу http://www.keil.com/support/man/docs/uv4/u...p_constants.htm чтобы представить число в двоичном виде нужно поставить в конце Y или y/

 

Но на вот это

uint64_t _bit_FM_LCD_PACKET=11111111y;

компилятор ругается, требует поставить точку с запятой перед "y"

 

Что не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что не так?

Документ относится к отладчику, а не к компилятору.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм, если сам кейл для i51 предлагает такую конструкцию http://www.keil.com/support/docs/1156.htm то наверно и для других процессоров нет возможности задать число в двоичном представлении.

P.S. Помню как перешел на язык С а там нет двоичного представления, пришлось переходить на шестнадцатеричные. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никак. нету этого в Кейле.

 

народ просто дефайны пишет, тоже вариант хороший.

#define LongToBin(n) \
(\
((n >> 21) & 0x80) | \
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
) #define Bin(n) LongToBin(0x##n##l)

Я бы еще #error или хоть #warning вставил в этот дефайн, потому что нужно еще корректную разрядность на выходе получить.

А еще правильней сделать не просто один Bin(), а индивидуальные "Bin_u8()", "Bin_u16()" etc.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P.S. Помню как перешел на язык С а там нет двоичного представления, пришлось переходить на шестнадцатеричные. :)

Оно не входит в стандарт (стандарт- hex, dec, oct), но абсолютное большинство компиляторов умеет и бин. А вот кейл- не умеет, даже странно как-то. Когда перешел на Кейл- был сильно удивлен этому факту, сильно плевался когда свои исходники из других МК и компиляторов под него адаптировал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...