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

Кто как работает с битами?

Ясно, спасибо. Но вроде как и int8_t, и uint8_t гарантированно имеют размерность в 8 бит?

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


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

и какие проблемы ? Все зависит как вы опишете Bit Banding, так вы его и портируете. Использовать 8-битный тип для флагов это двойной геморой, первое это расход памяти, второе это компилятор всегда расширяет 8 бит до 32 бит, а это для кортекса 1 лишняя команда.

 

А можно по подробнее, КАК он расширяет? ( я пользуюсь Кейлом uVision 3.85) Если у меня массив из 100 значений unsigned char ( u8 как в кейловской библиотеке переименовано), ведь не выделяется под них 400 байт?

 

При математических действиях разве эти 8 бит не записываются в младшие разряды 32- битного числа ( АЛУ 32-х битное) ? Я думал что только для знаковых типов преобразование требуется...

 

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


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

А можно по подробнее, КАК он расширяет? ( я пользуюсь Кейлом uVision 3.85) Если у меня массив из 100 значений unsigned char ( u8 как в кейловской библиотеке переименовано), ведь не выделяется под них 400 байт?

 

Может быть имелось в виду integer promotion?

 

В С99, 6.3.1.1p2:

 

If an int can represent all values of the original type, the value is converted to an int;

otherwise, it is converted to an unsigned int.

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


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

Гость MALLOY2
А можно по подробнее, КАК он расширяет?

 

Когда загружается 8 битная переменная в 32 битный регистр, неиспользуемые биты принудительно обнуляются, или если это знаковый 8 бит, тогда заполняются значением знака, тоже самое и с 16 битами

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


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

Ясно, спасибо. Но вроде как и int8_t, и uint8_t гарантированно имеют размерность в 8 бит?
Да.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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