Прежде всего, нам нужно знать, что определяет размер данных: это пространство памяти, принадлежащее их типу данных.
Когда мы знаем его тип данных, например:
int занимает 4 байта
char составляет 1 байт
Таким образом, объем памяти, который у них есть (1 байт = 8 бит), то есть их двоичные биты, составляет:
int 32bit (32位): int: 1111 1111 1111 1111 1111 1111 1111 1111 (4 294 967 168)
символ 8 бит (8 位): символ: 1111 1111 (255)
Минимальное значение — 0.
То есть, когда знаковый бит не учитывается :
целое число: 0 ~ 4 294 967 168
символ: 0~255
Когда мы рассматриваем знаковый бит (первый бит двоичной системы), его максимальное и минимальное значения меняются:
Все возможности значения char:
0000 0000
0000 0001
.....
0111 1110
0111 1111 (это уже самое большое положительное число типа char, 127)
Добавьте 1, чтобы получить
1000 0000 (-128) Это фиксированное значение. Когда это число появляется в виде символа, оно будет непосредственно рассматриваться как -128.
1000 0001(-127)
Здесь хранится дополнительный код. Сначала преобразуйте его в исходный код 1111 1110, 1111 1111 (-127)
Примечание. Здесь нам нужно отличить печать от printf (сначала обновите, а затем посмотрите, хотите ли вы изменить блог).
.....
1111 1110
1111 1111 преобразуется в исходный код через дополнительный код 1000 0001, который равен -1.
Итак, из вышеизложенного мы можем сделать вывод, что
Диапазон значений типа знакового символа: -128 ~ 127.
Прикрепил:
Как определить значение беззнакового символа, указав знаковый символ (для отрицательных чисел, не обязательно для положительных чисел):
нравиться:
Если вам дано -128, что нужно, чтобы преобразовать его в положительное число:
Тогда можно пройти: 256 + это число
256 + (-128) = 128
Та же самая причина
- 92: Теперь 256 - 92 = 168.
С другой стороны, если вы хотите найти отрицательное число через положительное число, используйте 256 – положительное число: 256 – 168 = 92.
Вы также можете запомнить диапазон типов символов по следующей картинке:
Сверхподробное описание языка C (включая интеллект-карты) было обновлено. Обратите внимание заранее, чтобы не заблудиться!