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