Задать вопрос
@pasha_nevalyasha

Как работает объявление переменных разных типов данных?

только начал изучать язык программирования С и стало интересно:
если под переменную типа short int выделяется 2 байта в памяти, тоесть грубо говоря 16 битов/ячеек, каждая из которых соответствует разряду двоичного числа, то мы можем сохранить например число 65535, которое соответствует максимальному шестнадцатизначному числу в двоичной системе(1111 1111 1111 1111). по сути мы просто "поставили" единички в каждую ячейку памяти, что по идее и должно дать максимально возможное число для переменной данного типа данных. но на деле максимальное число это 32767(ровно в два раза меньше числа 65535). почему так?
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
GavriKos
@GavriKos
Потому что отрицательные числа надо тоже учитывать. Один бит на знак
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Ещё есть числа со знаком и есть без знака. Для знака выделяется отдельный бит, поэтому и получается два диапазона чисел: от -x до +x и от 0 до +2x.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4 Куратор тега C
Жил да был черный кот за углом...
почему так?

Потому что есть signed int и unsigned int. У первого диапазон -32767 - 32767, у второго 0 - 65535. Обычно это особого значения не имеет, если только специально внимание на этом не заострять. Но тем не менее об этом надо помнить.

По умолчанию - signed int. То есть:
int a; // -32767 - 32767
unsigned int b; // 0 - 65535
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы