Я пришел использовать переменную типа uint16_t
, но не могу использовать этот тип данных из-за ограничений моего проекта. Возможно ли unsigned short int
вместо uint16_t
? Я не знаю разницы между ними обоими. Может ли кто-нибудь прояснить, пожалуйста?В чем разница между uint16_t и unsigned short int incase 64-битного процессора?
ответ
uint16_t
- это неподписанное 16-битовое целое число.
unsigned short int
- неподписанное короткое целое число, но размер зависит от реализации. Стандарт только говорит, что он по крайней мере 16-битный (т. Е. Минимальное значение UINT_MAX
- 65535
). На практике это обычно 16 бит, но вы не можете считать это гарантированным.
Примечание:
- Если вы хотите портативный беззнаковое 16-разрядное целое число, используйте
uint16_t
. - и
stdint.h
оба представлены на C99. Если вы используете C89, определите свой собственный тип. uint16_t
не может быть предоставлен в определенной реализации (см. Ссылку ниже), ноunsigned short int
всегда доступен.
Ссылка: С11 (ISO/IEC 9899: 201x) §7.20 типа Integer
Для каждого описанного здесь типа, что обеспечивает реализацию) объявляет, что ЬурейеЕ имя и определить связанные макросы. И наоборот, для каждого описанного здесь типа, который реализация не предоставляет, не объявляет это имя typedef и не определяет связанные макросы. Реализация должна обеспечивать те типы, которые называются «обязательными», но не обязательно предоставлять какие-либо из других (описываемых как «необязательные»).
В принципе, некоторые реализации (и ABI) могут иметь не 16-битные шорты. На практике все обычные 64-битные процессоры и ABI (x86-64, Sparc 64, PowerPC 64, Aarch 64) имеют 16 бит шорт. Но 'int'-s обычно 32 бита. –
Я тоже никогда не видел 64-битную машину с 32-разрядными шортами. – Casey
В качестве примечания обратите внимание на реализацию, в которой 'short int' больше 16 бит, а 'CHAR_BIT' равно 8 (как это почти всегда бывает), тогда просто * невозможно * определить' uint16_t', AFAICT , – Job
uint16_t
гарантированно быть беззнаковое целое число, которое составляет 16 бит большой
unsigned short int
гарантированно быть без знака short integer
, где short integer
определяется компилятором (и потенциально флаги компилятора) вы используете. Для большинства компиляторов для x86-оборудования short integer
имеет 16 бит.
Также отметим, что в the ANSI C standard только минимальный размер 16 бит, определяется, максимальный размер до разработчика компилятора
Минимальное Тип Пределы
Любой компилятор, соответствующей Стандарт должен также соблюдать следующие ограничения в отношении диапазона значений, которые могут быть приняты любым из типов . Обратите внимание, что это нижние пределы: реализация может превышать любые или все из них. Также обратите внимание, что минимальный диапазон для символа зависит от того, считается ли символ подписанным или неподписанным.
Тип Минимальный диапазон
signed char -127 to +127 unsigned char 0 to 255 short int -32767 to +32767 unsigned short int 0 to 65535
- 1. разница между unsigned short int и unsigned short
- 2. Какая разница между unsigned short int и unsigned int или unsigned short?
- 3. В чем разница между «short int» и «short» in c?
- 4. C В чем разница между unsigned int (a)^unsigned int (b) и unsigned int (a^b)?
- 5. В чем разница между (uint16_t *) и (uint32_t *)?
- 6. В чем разница между Uint32 и unsigned int в C++?
- 7. Преобразование unsigned char в int и short
- 8. В чем разница между short и SHORT в C++?
- 9. error: недопустимые типы 'uint16_t {aka short unsigned int} [uint8_t {aka unsigned char}]' для индекса массива
- 10. Разница между size_t и unsigned int?
- 11. Вывод короткого int и unsigned short?
- 12. В чем разница между int ++ и ++ int?
- 13. В чем разница между int [] [] и int [,]?
- 14. В чем разница между [] int и int []
- 15. Есть ли разница между unsigned и unsigned int
- 16. Преобразование QString в unsigned short int
- 17. В чем разница между __int <size> и "char, short, int, long long int"?
- 18. В чем разница между представлениями значений int и unsigned-int в битах в C
- 19. unsigned short vs unsigned int - иногда они одного и того же диапазона?
- 20. В чем разница между unsigned int и подписанным int в C?
- 21. Как преобразовать const unsigned short в unsigned short?
- 22. Является ли тип unsigned short + int реализационным?
- 23. В чем разница между int [] и Integer []
- 24. сравнение между unsigned int и unsigned char
- 25. В чем разница между архитектурами процессора?
- 26. Возможно ли выполнить побитовое ИЛИ назначение между unsigned int и unsigned short
- 27. Сужение преобразования без знака int в short unsigned int
- 28. Unsigned int conversion C++
- 29. В чем разница между int и cl_int в OpenCL?
- 30. Разница между 'int' и 'int?'
вы пробовали ищете, ЬурейеЕ беззнаковое короткое uint16_t? – Ishmeet
@Ishmeet Я не нашел никакой информации в случае 64-битного процессора – Chinna
@Ishmeet Я портирую код с одного процессора на другой, и я нашел его – Chinna