Вычитание в двоичной системе счисления
Тема 3. ПРЕДОСТАВЛЕНИЕ ЧИСЕЛ В КОМПЬЮТЕРЕ
Вопросы:
1. Компьютерное представление целых и вещественных чисел.
2. Арифметика двоичных чисел
2.1. Сложение в двоичной системе счисления.
2.2. Вычитание в двоичной системе счисления.
2.3. Умножение в двоичной системе счисления
Компьютерное представление целых и вещественных чисел
Для хранения чисел в памяти компьютера используется два формата: целочисленный (Целые числа) и с плавающей точкой (Вещественные числа).
Целые числа используется для представления в компьютере целых положительных и отрицательных чисел.
Целые числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой (или точки), отделяющей целую часть от дробной.
Эта форма проста и привычна для большинства пользователей, но имеет небольшой диапазон представления чисел и поэтому не всегда пригодна при вычислениях. Если же в результате какой-либо арифметической операции получается число, выходящее за допустимый диапазон, то происходит переполнение разрядной сетки, и все дальнейшие вычисления теряют смысл.
Однобайтовое представление применяется только для положительных целых чисел. В этом формате отсутствует знаковый разряд. Наибольшее двоичное число, которое может быть записано при помощи 1 байта, равно 11111111, что в десятичной системе счисления соответствует числу 25510.
Для положительных и отрицательных целых чисел обычно используется 2 и 4 байта, при этом старший бит выделяется под знак числа: 0 - плюс, 1 - минус.
Вещественные числаиспользуется для представления в компьютере действительных чисел. Вещественные числаразмещаются, как правило, в 4 или 8 байтах.
Нормализованная форма представления чисел обеспечивает огромный диапазон их записи и является основной в современных ЭВМ.
Арифметика двоичных чисел
Рассмотрим арифметические действия в двоичной системе счисления. Сначала отметим, что 12+12=102. Почему? Во-первых, вспомним, как в привычной десятичной системе счисления появилась запись 10. К количеству, обозначенному старшей цифрой десятичного алфавита 9, прибавляем 1. Получается количество, для обозначения которого одной цифрой в алфавите цифр уже не осталось. Приходится для полученного количества использовать комбинацию двух цифр алфавита, то есть представлять данное количество наименьшим из двухразрядных чисел: 910+110=1010. Аналогичная ситуация складывается в случае двоичной системы счисления. Здесь количество, обозначенное старшей цифрой 12 двоичного алфавита, увеличивается на единицу. Чтобы полученное количество представить в двоичной системе счисления, также приходится использовать два разряда. Для наименьшего из двухразрядных чисел здесь тот же единственный вариант: 102. Во-вторых, важно понять, что 102? 1010. Строго говоря, в двоичной системе счисления это и читать надо не “десять”, а “один ноль”. Верным является соотношение 102 = 210. Здесь слева и справа от знака равенства написаны разные обозначения одного и того же количества. Это количество просто записано с использованием алфавитов разных систем счисления – двоичной и десятичной. Вроде, как мы на русском языке скажем “яблоко”, а на английском про тот же предмет – “apple”, и будем правы в обоих случаях.
Сложение в двоичной системе счисления.
После этих предварительных рассуждений запишем правило выполнения в двоичной системе счисления арифметического сложения одноразрядных чисел:
02 + 02 = 02;
12 + 02 = 12;
02 + 12 = 12;
12 + 12 = 102.
Правила двоичного сложения предельно просты. Только в одном случае, когда производится сложение 12 + 12, происходит перенос в старший разряд.
Например, найти сумму двоичных чисел 1001101102 и 1101101112
+ | |||||||||||||||||||
Ответ: 10111011012.
Вычитание в двоичной системе счисления
Исходя из того, что вычитание есть действие, обратное сложению, запишем правило арифметического вычитания одноразрядных чисел в двоичной системе счисления:
02 – 02 = 02;
12 – 02 = 12;
12 – 12 = 02;
102 – 12 = 12.
Используя это правило, можно проверить правильность произведенного выше сложения вычитанием из полученной суммы одного из слагаемых. При этом чтобы вычесть в каком-либо разряде единицу из нуля, необходимо “занимать” недостающее количество в соседних старших разрядах (так же, как в десятичной системе счисления поступают при вычитании большего числа из меньшего). При этом все нули, у которых мы не могли занять разряд, необходимо поменять на единицу, т.к. 0-1=-1. Желательно все изменения в цифрах записывать сверху данного вычитания. Дальнейшее вычитание выполнять с получившимися сверху цифрами.
Например, найти разность двоичных чисел 11001101102 и 1101101112
- | |||||||||||||||||||
Ответ: 1011111112.