Подтвердить что ты не робот

Обработка с фиксированной точкой: в чем разница между uint16_t и uint_fast16_t?

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

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

Спасибо!!

4b9b3361

Ответ 1

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

Ответ 2

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

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