Мне трудно понять типы данных в C. Я просматриваю книгу C, и одна из задач спрашивает, какое максимальное и минимальное число может хранить short
.
Используя sizeof(short);
, я вижу, что шорт занимает 2 байта. Это означает, что это 16 бит, что означает два числа, поскольку для хранения двоичного представления числа требуется 8 бит. Например, 9 будет 00111001
, что заполняет один бит. Так не будет ли это от 0 до 99 для без знака и -от 9 до 9 для знака?
Я знаю, что ошибаюсь, но не знаю почему. Здесь написано , максимум (-)32 767 для подписанных и 65 535 для беззнаковых.
short int, 2 Bytes, 16 Bits, -32,768 -> +32,767 Range (16kb)