Кодирование целых чисел.
Для работы с числами человек использует в основном две формы для их записи – естественную и экспоненциальную.
Экспоненциальная форма записи чисел используется для обозначения очень больших или очень маленьких чисел.
Например 0,000002=0,2*10 -5 или 1000=10 3 .
Целые числа.
Целые числа без знака
(только положительные)
Целые числа со знаком (положительные и отрицательные)
Для хранения чисел в памяти отводится определённое количество разрядов, в совокупности представляющих собой k -разрядную сетку.
Целые числа без знака.
Обычно занимают в памяти один или два байта.
В однобайтовом формате значения от 00000000 2 до 11111111 2 (0…255)
Пример 72 10 =1001000 2
Биты числа
0
1
0
0
0
1
0
0
номера разрядов 7 6 5 4 3 2 1 0
Целые числа без знака.
В двухбайтовом формате значения
от 00000000 00000000 2
до 11111111 11111111 2
(0…65535)
Пример 72 10 =1001000 2
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Целые числа со знаком.
Обычно занимают в памяти компьютера 1, 2 или 4 байта, при этом самый левый (старший) разряд содержит информацию о знаке числа. Знак «+» кодируется 0, а «-» - 1
Целые числа со знаком.
В однобайтовом формате значения от -128 до 127.
В двухбайтовом формате значения
От -32 768 до 32 767.
В четырёхбайтовом формате значения от -2 147 483 648 до
2 147 483 647.
Целые числа со знаком.
Примеры.
1 10 =1 2
0
0
0
0
0
0
0
1
Знак числа «+»
Целые числа со знаком.
В компьютерной технике применяются три формы записи (кодирования) целых отрицательных чисел: прямой код, обратный код, дополнительный код.
Прямой код числа.
В знаковый разряд помещается цифра 1, а в разряды цифровой части – двоичный код его абсолютной величины.
Пример
Прямой код числа -1:
1
0
0
0
0
0
0
1
Знак числа «-»
Обратный код числа.
Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы – нулями.
Пример
Число: -1.
Код модуля числа: 0 0000001.
Обратный код числа: 1 1111110.
1
1
1
1
1
1
1
0
Дополнительный код числа.
Получается образованием обратного кода с последующем прибавлением единицы к его младшему разряду.
Пример
Число: -1.
Код модуля числа : 0 0000001.
Обратный код числа : 1 1111110
+1
1 1111111
1
1
1
1
1
1
1
1
Как компьютер выполняет арифметические действия над целыми числами.
В большинстве компьютеров операция вычитание не используется. Вместо неё производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.
Примеры:
3 0 0000011
7 0 0000111
10 0 0001010
3 0 0000011
-10 1 1110101
-7 1 1111000
+
+
+
+
Обратный код числа -10
Обратный код числа -7
Примеры:
10 0 0001010
-3 1 1111100
7 0 0000110
+
+
Обратный код числа -3
+1
0 0000111
Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.
Примеры:
-3 1 1111100
-7 1 1111000
-10 1 1110100
Обратный код числа -3
+
+
Обратный код числа -7
+1
1 1110101
Обратный код числа -10
Полученный первоначально неправильный результат (обратный код числа -11 вместо обратного кода числа -10) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы.
При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = -10
Задание 1.
Представить число 21 в однобайтовой разрядной сетке.
Задание 2.
Представить число 21 и -21 в двухбайтовой разрядной сетке.