Ответ 1
uint16_t
- это неподписанное 16-разрядное целое число. uint_fast16_t
- это самое быстрое доступное целое число без знака с не менее 16 бит.
У меня есть 16-битный процессор с фиксированной точкой, и я хочу обработать с ним фиксированную точку. Я ищу правильный тип данных для использования беззнаковых 16-битных ints.
Мой вопрос: в чем разница между uint16_t
и uint_fast16_t
? (Они включены в stdint.h
.) Является ли uint_fast16_t
лучше, так как это быстрее?
Спасибо!!
uint16_t
- это неподписанное 16-разрядное целое число. uint_fast16_t
- это самое быстрое доступное целое число без знака с не менее 16 бит.
uint16_t
более ограничительный, чем uint_fast16_t
и uint_least16_t
. Мало того, что более поздние два могут быть более 16 бит, они могут также иметь биты заполнения (биты, которые не учитывают значение, такое как бит четности).
Эта разница еще более выражена для подписанных типов. Здесь точные типы ширины должны использовать два дополнения для представления отрицательных значений.