Если вы знакомы с графическими программами и, в частности, с настройками цветов, то вы наверняка обращали внимание на варианты записи цвета. Например цвета палитры R, G, B (красный, зеленый, синий) - имеют диапазон значений от 0 до 255 Это как раз и есть двоичная запись.
В шестнадцатеричной системе счисления "полбайта" имеют запись в виде "F". Соответственно "FF" - это целый байт имеющий значение 255 в десятичной системе счисления - FF16 = 25510
Шестнадцатеричная система счисления более компактная, нежели двоичная и более легко читаема, по этой причине она чаще применяется в программировании. Вы ее также могли встречать для записи параметров цвета в тех же графических программах (для значений RGB)
Вопрос: сколько же байт отводится под хранение целого числа? Чем больше байт отводится под хранение, тем большим диапазоном чисел можно пользоваться.
В 1 байте - максимум 255 - но это только для беззнаковых чисел (от 0 и выше) 2 байта - это максимум 65536
Под хранение целого числа ( тип int - от integer) отводится 4 байта - это миллиарды в значении числа
Однако может потребоваться хранение чисел со знаком - для хранения отрицательных чисел.
Как хранятся отрицательные числа? Для хранения числа со знаком необходимо выделить один из разрядов (1 бит) для того, чтобы указать - является это число отрицательным или нет. Для этих целей выделяется старший бит (самый левый) 0 - это показатель положительного числа 1 - показатель отрицательного числа
В этом случае мы сразу теряем в диапазоне чисел, которые мы можем хранить в одном байте. Получается, что 1 байт выделенный для хранения знакового целого числа может содержит диапазон от -128 до +127 На первый взгляд этот диапазон не симметричный - это происходит от того, что счет ведется от 0, а не от 1
Следовательно запись в двоичном виде числа 01111 - будет соответствовать 15 в десятичной системе В этой записи 0 - это указатель на знак числа