Представление числовой информации в памяти компьютере
автор: Буланкина И.Н.
Форматы представления чисел
Целочисленные (с фиксированной точкой)
С плавающей точкой
Целые положительные числа
Целые числа со знаком
Целочисленный формат (формат с фиксированной точкой) используется для представления в компьютере целых положительных и отрицательных чисел. Для этого, как правило, используются форматы кратные байту: 1,2,4 байта.
Однобайтовое представление применяется только для положительных целых чисел. В этом формате отсутствует знаковый разряд.
Для положительных и отрицательных целых чисел используется 2 или 4 байта , при этом старший бит выделяется под знак числа 0-плюс, 1-минус.
Формат с плавающей точкой используется для представления в компьютере действительных чисел. Числа с плавающей точкой, как правило, размещаются в 4 или 8 байтах.
Представление целых положительных чисел
1 регистр памяти (1 байт-8 бит)
8р
7р
6р
5р
4р
3р
2р
1р
Максимальное значение целого неотрицательного числа, которое может храниться в регистре в формате с фиксированной запятой, можно определить из формулы: 2 n – 1, где п – число разрядов числа. Максимальное число при этом будет равно 2 8 – 1 = 255 10 = 11111111 2 и минимальное 0 10 = 00000000 2 . Таким образом, диапазон изменения целых неотрицательных чисел будет находиться в пределах от 0 до 255 10 .
Представление положительных чисел и отрицательных чисел 2, 4 байтовом формате
16 р
0
15 р
п
14 р
1
о
о
13 р
л
т
12 р
р
о
11 р
ж
10 р
и
ц
9 р
и
т
8 р
а
7 р
т
е
л
е
6 р
5 р
л
ь
н
4 р
ь
н
о
3 р
е
2 р
о
1 р
е
Максимальное положительное число или минимальное отрицательное в 2 байтовом формате значения числа со знаком (с учетом представления одного разряда под знак) равно 2 n-1 – 1 = 2 16-1 – 1 = 2 15 – 1 = 32767 10 = 111111111111111 2 и диапазон чисел будет находиться в пределах от -32767 10 до +32767 .
Прямой код числа.
Представление числа в привычной форме "знак"-"величина", при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно.
Положительные числа в ЭВМ всегда представляются с помощью прямого кода. Прямой код числа полностью совпадает с записью самого числа в ячейке машины. Прямой код отрицательного числа отличается от прямого кода соответствующего положительного числа лишь содержимым знакового разряда. Но отрицательные целые числа не представляются в ЭВМ с помощью прямого кода, для их представления используется так называемый дополнительный код .
Дополнительный код числа.
Дополнительный код положительного числа равен прямому коду этого числа.
Дополнительный код отрицательного числа m равен 2k-|m|, где k - количество разрядов в ячейке .
Дополнительный код используется для упрощения выполнения арифметических операций. Если бы вычислительная машина работала с прямыми кодами положительных и отрицательных чисел, то при выполнении арифметических операций следовало бы выполнять ряд дополнительных действий.
Алгоритм получения дополнительного кода отрицательного числа.
Для получения дополнительного k-разрядного кода отрицательного числа необходимо
1.модуль отрицательного числа представить прямым кодом в k двоичных разрядах;
2.значение всех бит инвертировать:все нули заменить на единицы, а единицы на нули(таким образом, получается k-разрядный обратный код исходного числа);
3.к полученному обратному коду прибавить единицу.
Пример:
Получим 8-разрядный дополнительный код числа -52:
00110100 - число |-52|=52 в прямом коде
11001011 - число -52 в обратном коде
11001100 - число -52 в дополнительном коде
Можно заметить, что представление целого числа не очень удобно изображать в двоичной системе, поэтому часто используют шестнадцатеричное представление: 1100 1100 2=С С1 6