Обработка с фиксированной запятой: в чем разница между uint16_t и uint_fast16_t? - PullRequest
14 голосов
/ 10 февраля 2011

У меня 16-разрядный процессор с фиксированной запятой, и я хочу с ним выполнять обработку с фиксированной запятой.Я ищу правильный тип данных для 16-разрядных целых чисел без знака ..

Мой вопрос: в чем разница между uint16_t и uint_fast16_t?(Они включены в stdint.h.) uint_fast16_t лучше, так как он быстрее ??

Спасибо !!

Ответы [ 2 ]

13 голосов
/ 10 февраля 2011

uint16_t - 16-разрядное целое число без знака.uint_fast16_t - самое быстрое доступное целое число без знака, по крайней мере, с 16 битами.

6 голосов
/ 11 февраля 2011

uint16_t является более строгим, чем uint_fast16_t и uint_least16_t. Мало того, что последние два могут быть шире, чем 16 бит, они также могут иметь биты заполнения (биты, которые не учитывают значение, такое как биты четности).

Эта разница еще более заметна для подписанных типов. Здесь точные типы ширины должны использовать дополнение к двум для представления отрицательных значений.

...