моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Обычно переменная типа int занимает 4 байта, 1 байт имеет 8 бит, и каждый бит имеет два состояния: 0 и 1, поэтому переменная типа int может представлять в общей сложности 2^32 состояния (то есть она может представлять 2^8). значение данных).
Начало в 07:36
дальнейшее понимание
просить: Из двух приведенных выше видеороликов мы можем узнать, что диапазон целых положительных чисел, которые могут быть представлены типом int, составляет 1 ~ 2^31 - 1. Если мы сравним эту логику с отрицательными целыми числами, то диапазон целых чисел, которые могут быть представлены, равен 1 ~ 2^31 - 1. по типу int не должно быть -2^31 + 1 ~ 2^31 -1? Поскольку значение 2^31 получить невозможно, почему можно получить -2^31?
отвечать:В информатике наиболее часто используемое представление целого числа со знаком:представление дополнения до двух . Этот метод не только решает проблему представления положительных и отрицательных чисел, но и упрощает двоичные операции сложения и вычитания. Давайте рассмотрим это представление подробно:
1. Положительное число : Двоичное представление положительных чисел такое же, как и беззнаковых чисел. Например, трехзначное двоичное представление числа 3 — 011.
2. отрицательное число : представление отрицательных чисел достигается за счет дополнения положительных чисел. Дополнение до двух отрицательного числа рассчитывается путем инвертирования двоичного представления абсолютного значения числа и добавления 1. Например:
① Отрицание: сначала инвертируйте двоичное представление числа 3, 011 в число 100.
② Прибавление 1: прибавьте 1 к 100, чтобы получить 101, поэтому представление дополнения до двух для -3 равно 101.
Для 32-битной целочисленной переменной ее старший бит (также называемый битом знака) представляет знак, 0 соответствует положительному значению, а 1 представляет отрицательное значение. Оставшийся 31 бит используется для представления числовых значений.Далее вернемся к только что поднятому вопросу:
1. Положительный диапазон (включая 0) : Знаковый бит равен 0, а остальные 31 бит могут представлять значения от 000…000 (31 0 с) до 011… 111 (31 1 с). Соответствующий десятичный диапазон — от 0 до 2^31 – 1.
2. Отрицательный диапазон : Знаковый бит равен 1, а остальные 31 бит могут представлять значения от 100...000 (31 0 с) до 111...111 (31 1 с). Среди них дополнение до двух чисел 100...000 (31 ноль) представляет -2^31, а соответствующее десятичное значение - -2^31. Дополнение до двух чисел 111...111 (31 единица) представляет -1, а соответствующее десятичное значение равно -1.
Диапазон положительных чисел: 1 ~ 2^31 - 1; Диапазон отрицательных чисел: -1 ~ -2^31, общее количество по-прежнему составляет 2^32 различных состояний. Поэтому обычно диапазон значений целочисленного типа int составляет -2147483648 ~ 2147483647 (т.е. -2^31 ~ 2^31 - 1).
Сколько байт занимает 64-битное целое число? Разница между целочисленными типами int, long и long long?
Сколько байт занимает 64-битный int? [Интервью] Сколько байт занимает int?
Разница между 32-битными и 64-битными машинами и количеством байтов, занимаемых базовыми типами данных
Целочисленный тип языка C (включая диапазон значений и длину)
Сколько байт занимает тип int?
Размер данных типа int и типа указателя на разных платформах
Проблема Java sizeof()
Переменные типа Int в Python могут хранить целые числа любого размера.
Подведем итог:
- На размер типа данных C и C++ влияют стандарт компиляции, компилятор, разрядность операционной системы и т. д.
- Размер типа данных Java и Python определяется спецификацией языка или реализацией интерпретатора и не зависит от таких факторов, как разрядность компилятора и операционной системы.
- Основная причина такого различия в конструкции заключается в том, что C и C++ — это языки системного программирования, которым обычно необходимо напрямую взаимодействовать с оборудованием, поэтому размер типов данных будет варьироваться в зависимости от базовой среды, в то время как Java и Python являются высокопроизводительными; уровневые языки программирования с более высоким уровнем абстракции. Целью проектирования является кроссплатформенная согласованность.