Гарантированно ли long имеет 32 бита?
Несмотря на распространенные предположения, основанные на стандарте C, возникает вопрос, гарантированно ли long будет иметь не менее 32 бит. Стандарт классифицирует фундаментальные целочисленные типы как:
sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)
Однако многие предполагают, что на основании этого иерархия, длина должна иметь 32 бита. Однако в Стандарте прямо указано, что количество битов в байте определяется реализацией. Стейнбах утверждал, что длина гарантированно равна 32 битам. Он основывал это утверждение на неявном пределе диапазона значений, которые может содержать long (от LONG_MIN до LONG_MAX).
Стандарт C ссылается на стандарт C (18.3.2), который определяет:LONG_MIN ≤ -2^31 1 LONG_MAX ≥ 2^31 - 1
Подключение к 32-битному представлениюLONG_MIN ≤ -2^31 1 LONG_MAX ≥ 2^31 - 1
Представление с дополнением до двух:
Если отрицательные числа представлены в дополнении до двух, для хранения LONG_MIN или LONG_MAX требуется 32 бита.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3