Представление целых чисел в памяти компьютера
18.01.2021Все числа в памяти компьютера хранятся в виде двоичного кода. Для того, чтобы записать целые числа, компьютер использует 8 – 16- 32 – 64 разряда или биты.
8 бит равен 1 байту. 16 бит = 2 байта. 32 бит = 4 байта. 64 бит = 8 байт.
Компьютер так устроен, что получать данные из одного байта он может, а из половины байта нет. Компьютер может считывать некоторое количество байт. Использовать 4 бита для записи минимально возможного числа мы не можем, так как ячейка из которой считает компьютер информацию – это 1 байт.
8 бит – это 8 ячеек памяти.
Как будет это реализовано в памяти компьютера.
Оперативная память компьютера, где будут храниться наши числа, состоит из нескольких устойчивых элементов, которые могут принимать значение либо 1, либо 0. Например, компьютеру нужно записать число 13. Компьютер первым делом переводит число 13 из десятичной системы счисления в двоичный код. Потом берет и записывает его справа налево, старшие разряды он дополняет нулями.
Переводим число 13 в двоичный код и получаем 1310 = 00001101
Если бы это число хранилось не в 8 битах, а в 16, то компьютер еще больше разрядов заполнил бы нулями.
Соответственно, прежде чем перевести число в десятичную систему счисления, компьютер откидывает ненужные нули впереди числа, а затем переводит число в десятичную систему счисления и получает 13. В нашем случае разговор шел о целых положительных числах. Однако, существуют и целые отрицательные числа.
Поэтому, когда у нас хранится в памяти компьютера число со знаком, самый старший бит отводится в компьютере под знак.
Число у нас хранится в этом промежутке, т.е. если всего 8 бит, то на число отводится 7 бит, и 1 бит отводится на знак. Соответственно будет 0, если знак у числа плюс и 1, если знак у числа минус.
Определим, какое максимальное число мы можем хранить в 87 битах. Предположим, что у нас хранятся беззнаковые числа или все числа с плюсом.
Тогда максимальным числом в двоичной системе будет 1 1 1 1 1 1 1 1 (восемь единиц). Если мы возьмем это число из 8 единиц и переведем в десятичную систему счисления, то получим 25510 ( в десятичной).
Если мы хотим знать максимальное число, которое можно хранить в 8 битах, но со знаком, то у нас получилось бы: 011111112 = 12710 .
Таким образом, в памяти компьютера мы сможем хранить числа от -127 до 127, т.е. получаем те же самые 255.
Представление числа в привычной для человека форме «знак-величина», при которой старший разряд ячейки отводится под знак, а остальные под разряды числа, называется прямым кодом.
Экономист по первому образованию и учитель информатики по второму. Преподаю в школе информатику, программирование, сайтостроение, экономику.