Арифметические операции с числами в позиционных системах счисления. Деление Математические действия в системах счисления

Сложение и вычитание

В системе с основанием для обозначения нуля и первых с-1 натуральных чисел служат цифры 0, 1, 2, ..., с - 1. Для выполнения операции сложения и вычитания составляется таблица сложения однозначных чисел.

Таблица 1 - Сложение в двоичной системе

Например, таблица сложения в шестеричной системе счисления:

Таблица 2 - Сложение в шестеричной системе

Сложение любых двух чисел, записанных в системе счисления с основанием с, производится так же, как в десятичной системе, по разрядам, начиная с первого разряда, с использованием таблицы сложения данной системы. Складываемые числа подписываются одно за другим так, чтобы цифры одинаковых разрядов стояли по вертикали. Результат сложения пишется под горизонтальной чертой, проведенной ниже слагаемых чисел. Так же как при сложении чисел в десятичной системе, в случае, когда сложение цифр в каком-либо разряде дает число двузначное, в результат пишется последняя цифра этого числа, а первая цифра прибавляется к результату сложения следующего разряда.

Например,

Можно обосновать указанное правило сложения чисел, используя представление чисел в виде:

Разберем один из примеров:

3547=3*72+5*71+4*70

2637=2*72+6*71+3*70

(3*72+5*71+4*70) + (2*72+6*71+3*70) =(3+2)*72+(5+6)*7+(3+4)=

5*72+1*72+4*7+7=6*72+4*7+7=6*72+5*7+0=6507

Последовательно выделяем слагаемые по степени основания 7, начиная с низшей, нулевой, степени.

Вычитание производится также по разрядам, начиная с низшего, причем если цифра уменьшаемого меньше цифры вычитаемого, то из следующего разряда уменьшаемого "занимается" единица и из полученного двузначного числа вычитается соответствующая цифра вычитаемого; при вычитании цифр следующего разряда в этом случае нужно мысленно уменьшить цифру уменьшаемого на единицу, если же эта цифра оказалась нулем (и тогда уменьшение ее невозможно), то следует "занять" единицу из следующего разряда и затем произвести уменьшение на единицу. Специальной таблицы для вычитания составлять не нужно, так как таблица сложения дает результаты вычитания.

Например,

Умножение и деление

Для выполнения действий умножения и деления в системе с основанием с составляется таблица умножения однозначных чисел.

Таблица 3 - Умножение однозначных чисел

Таблица 4 - Умножение в шестеричной системе счисления

Умножение двух произвольных чисел в системе с основанием с производится так же, как в десятичной системе - "столбиком", то есть множимое умножается на цифру каждого разряда множителя (последовательно) с последующим сложением этих промежуточных результатов.

Например,

При умножении многозначных чисел в промежуточных результатах индекс основания не ставится:

Деление в системах с основанием с производится углом, так же, как в десятичной системе счисления. При этом используется таблица умножения и таблица сложения соответствующей системы. Сложнее дело обстоит, если результат деления не является конечной с-ичной дробью (или целым числом). Тогда при осуществлении операции деления обычно требуется выделить непериодическую часть дроби и ее период. Умение выполнять операцию деления в с-ичной системе счисления полезно при переводе дробных чисел из одной системы счисления в другую.

Например:


Перевод чисел из одной системы счисления в другую

Существует много различных способов перевода чисел из одной системы счисления в другую.

Способ деления

Пусть дано число N=an an-1. . . a1 а0 р.

Для получения записи числа N в системе с основанием h следует представить его в виде:

N=bmhm+bm-1hm-1+... +b1h+b0 (1)

где 1

N=bmbm-1... b1boh (2)

Из (1) получаем:

N= (bmhm-1+...+b)*h +b0 = N1h+b0, где 0? b0 ?h (3)

To есть, цифра b0 является остатком от деления числа N на число h. Неполное частное Nl = bmhm-1+ . . . +b1 представим в виде:

Nl = (bmhm-2 + ... + b2)h + b1 = N2h+b1, где 0? b2 ?h (4)

Таким образом, цифра bi в записи (2) числа N является остатком от деления первого неполного частного N1 на основание h новой системы счисления. Второе неполное частное N2 представим в виде:

N2 = (bmhm-3+ ... +b3)h+b2, где 0? b2 ?h (5)

то есть цифра b2 является остатком от деления второго неполного частного N2 на основание h новой системы. Так как не полные частные убывают, то этот процесс конечен. И тогда мы получаем Nm = bm, где bm

Nm-1 = bmh+bm.1 = Nmh+bm.1

Таким образом, последовательность цифр bm, bm-1 . . ,b1,b0 в записи числа N в системе счисления с основанием h есть последовательность остатков последовательного деления числа N на основание h, взятая в обратной последовательности.

Рассмотрим пример: Выполнить перевод числа 123 в шестнадцатеричную систему счисления:

Таким образом, число 12310=7(11)16 либо можно записать как 7B16

Запишем число 340227 в пятеричной системе счисления:

Таким образом, получаем, что 340227=2333315

Для работы с данными используется кодирование , т.е. выражение данных одного типа через данные другого типа.

Своя система существует и в вычислительной технике - она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называются двоичными цифрами, по английски - binarydigit или, сокращенно, bit (бит).

Одним битом могут быть выражены два понятия: 0 или 1 (да или нет, черное или белое, истина или ложь и т. п.). Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия:

Тремя битами можно закодировать восемь различных значений: 000 001 010 011 100 101 110 111

Увеличивая на единицу количество разрядов в системе двоичного кодирования, мы увеличиваем в два раза количество значений, которое может быть выражено в данной системе, то есть общая формула имеет вид:

N=2 m , где:

N - количество независимых кодируемых значений;

т - разрядность двоичного кодирования, принятая в данной системе.

Поскольку бит - слишком мелкая единица измерения, на прак­тике чаще применяется более крупная единица - байт, равная восьми битам.

Используются также более крупные производные единицы данных:

Килобайт (Кбайт) = 1024 байт = 2 10 байт;

Мегабайт (Мбайт) = 1024 Кбайт = 2 20 байт;

Гигабайт (Гбайт) = 1024 Мбайт = 2 30 байт.

В последнее время в связи с увеличением объемов обрабатывае­мых данных входят в употребление такие производные едини­цы, как:

Терабайт (Тбайт) = 1024 Гбайт = 2 40 байт;

Петабайт (Пбайт) = 1024 Тбайт = 2 50 байт;

Экзабайт (Эбайт) = 1024 Пбайт = 2 60 байт.

Кодирование текстовой информации производится с помощью Американского стандартного кода для обмена информацией ASCII, в котором установлены коды символов от 0 до 127. Национальные стандарты отводят под символ 1 байт информации и включают таблицу кодов ASCII, а также коды национальных алфавитов с номерами от 128 до 255. В настоящее время существуют пять различных кодировок кириллицы: КОИ-8, MS-DOS, Windows, Macintosh и ISO. В конце 90-х годов появился новый международный стандарт Unicode, который отводит под каждый символ не один байт, а два байта, и поэтому с его помощью можно закодировать не , а различных символов.



Базовая таблица кодировки ASCII приведена в таблице.

Кодирование цветных графических изображений производится с помощью растра, где каждой точке сопоставлен ее номер цвета. В системе кодирования RGB цвет каждой точки представляется суммой красного (Red), зеленого (Green) и синего (Blue) цветов. В системе кодирования CMYK цвет каждой точки представляется суммой голубого (Cyan), пурпурного (Magenta), желтого (Yellow) и добавлением черного (Black, K) цветов.

Кодирование аналоговых сигналов

Исторически первой технологической формой получения, передачи и хранения данных являлось аналоговое (непрерывное) представление звукового, оптического, электрического или другого сигнала. Для приема таких сигналов в ЭВМ предварительно выполняют аналого-цифровое преобразование.

Аналого-цифровое преобразование заключается в измерении аналогового сигнала через равные промежутки времени τ и кодировании результата измерения n-разрядным двоичным словом. При этом получают последовательность n-разрядных двоичных слов, представляющих с заданной точностью аналоговый сигнал.

Принятый в настоящее время стандарт CD использует так на­зываемый «16-разрядный звук с частотой сканирования 44 кГц». Для приведенного рисунка в переводе на нормальный язык это означает, что «дли­на ступеньки» (т) равна 1/44000 с, а «высота ступеньки» (δ) состав­ляет 1/65 536 от максимальной громкости сигнала (поскольку 2 16 = 65 536). При этом частотный диапазон воспроизведения со­ставляет 0-22 кГц, а динамический диапазон - 96 децибел (что со­ставляет совершенно недостижимую для магнитной или механиче­ской звукозаписи характеристику качества).

Сжатие данных.

Объем обрабатываемых и передаваемых данных быстро растет. Это связано с выполнением все более сложных прикладных процессов, появлением новых информацион­ных служб, использованием изображений и звука.

Сжатие данных (datacompression) - процесс, обеспечивающий уменьшение объема данных. Сжатие позволяет резко уменьшить объем памяти, необходимый для хранения данных, сократить (до приемлемых размеров) время их передачи. Особенно эффективно сжатие изображений. Сжатие данных может осуществляться как программным, так и аппаратным или комбинированным методом.

Сжатие текстов связано с более компактным расположением байтов, кодирующих символы. Здесь также использу­ется счетчик повторений пробелов. Что же касается звука и изобра­жений, то объем представляющей их информации зависит от вы­бранного шага квантования и числа разрядов аналого-цифрового преобразования. В принципе, здесь используются те же методы сжа­тия, что и при обработке текстов. Если сжатие текстов происходит без потери информации, то сжатие звука и изображения почти все­гда приводит к ее некоторой потере. Сжатие широко используется при архивировании данных.

Система счисления – представление числа определенным набором символов. Системы счисления бывают:

1. Единичные (система бирок или палочек);

2. Непозиционные (римская);

3. Позиционные (десятичная, двоичная, восьмеричная, шестнадцатеричная и т.д.).

Позиционной называется система счисления, в которой количественное значение каждой цифры зависит от ее места (позиции) в числе. Основанием позиционной системы счисления называется возводимое в степень целое число, которое равно количеству цифр в данной системе.

Двоичная система счисления включает алфавит из двух цифр: 0 и 1.

Восьмеричная система счисления включает алфавит из 8 цифр: 0, 1, 2, 3, 4, 5, 6 и 7.

Десятичная система счисления включает алфавит из 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.

Шестнадцатеричная система счисления включает алфавит из 16 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

A B C D E F

В вычислительной технике используется кодирование в двоичной системе счисления, т.е. последовательностью 0 и 1.

Для перевода целого числа из одной системы счисления в другую надо выполнить следующий алгоритм:

1. Основание новой системы счисления выразить цифрами исходной системы счисления.

2. Последовательно выполнять деление данного числа на основание новой системы счисления, пока не получится частное, меньшее делителя.

3. Полученные остатки перевести в новую систему счисления.

4. Составить число из остатков в новой системе счисления, начиная с последнего остатка.

В общем случае в позиционной СС с основанием Р любое число Х может быть представлено в виде полинома от основания Р:

Х = а n Р n + a n-1 P n-1 + … + a 1 P 1 + a o P 0 + a -1 P -1 + a -2 P -2 + …+ a -m P -m ,

где в качестве коэффициентов а i могут стоять любые из Р цифр, используемых в СС с основанием Р.

Перевод чисел из 10 СС в любую другую для целой и дробной части числа выполняется различными методами:

а) целая часть числа и промежуточные частные делятся на основание новой СС, выраженное в 10 СС до тех пор, пока частное от деления не станет меньше основания новой СС. Действия выполняются в 10 СС. Результат – частные, записанные в обратном порядке.

б) дробная часть числа и получающиеся затем дробные части промежуточных произведений умножаются на основание новой СС до тех пор, пока не будет достигнута заданная точность, либо не будет получен «0» в дробной части промежуточного произведения. Результат – целые части промежуточных произведений, записанные в порядке их получения.

С помощью формулы (1) можно перевести числа из любой системы счисления в десятичную систему счисления.

Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:

1 ·2 6 +0·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +0 ·2 -1 +0 ·2 -2 +1 ·2 -3 =64+16+8+4+1+1/8=93.125

Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:

Пример 3 . Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:

Здесь A -заменен на 10, B - на 11, C - на 12, F - на 15.

Перевод 8 (16) числа в 2 форму – достаточно заменить каждую цифру этого числа соответствующим 3-х разрядным (4-х разрядным) двоичным числом. Ненужные нули в старших и младших разрядах отбросить.

Пример 1: перевести число 305,4 8 в двоичную СС.

(_3_ _0 _ _5 _ , _4 _) 8 = 011000101,100 = 11000101,1 2

Пример 2: перевести число 9АF,7 16 в двоичную СС.

(_9 __ _A __ _F __ , _7 __) 16 = 100110101111,0111 2

1001 1010 1111 0111

Для перевода 2-го числа в 8 (16) СС поступают следующим образом: двигаясь от запятой влево и вправо, разбивают двоичное число на группы по 3 (4) разряда, дополняя при необходимости нулями крайние левую и правую группы. Затем каждую группу заменяют соответствующей восьмеричной (16) цифрой.

Пример 1: перевести число 110100011110100111,1001101 2 в восьмеричную СС.

110 100 011 110 100 111,100 110 100 2 = 643647,464 8

Пример 2: перевести число 110100011110100111,1001101 2 в шестнадцатеричную СС.

0011 0100 0111 1010 0111,1001 1010 2 = 347А7,9А 16

Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же хорошо известным вам правилам.

Сложение. Рассмотрим сложение чисел в двоичной системе счисления. В его основе лежит таблица сложения одноразрядных двоичных чисел:

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Важно обратить внимание на то, что при сложении двух единиц происходит переполнение разряда и производится перенос в старший разряд. Переполнение разряда наступает тогда, когда величина числа в нем становится равной или большей основания.

Сложение многоразрядных двоичных чисел происходит в соответствии с вышеприведенной таблицей сложения с учетом возможных переносов из младших разрядов в старшие. В качестве примера сложим в столбик двоичные числа 110 2 и 11 2:

Вычитание. Рассмотрим вычитание двоичных чисел. В его основе лежит таблица вычитания одноразрядных двоичных чисел. При вычитании из меньшего числа (0) большего (1) производится заем из старшего разряда. В таблице заем обозначен 1 с чертой:

Умножение. В основе умножения лежит таблица умножения одноразрядных двоичных чисел:

Деление. Операция деления выполняется по алгоритму, подобному алгоритму выполнения операции деления в десятичной системе счисления. В качестве примера произведем деление двоичного числа 110 2 на 11 2:

Для проведения арифметических операций над числами, выраженными в различных системах счисления, необходимо предварительно перевести их в одну и ту же систему.

Двоичная система счисления Сложение одноразрядных двоичных чисел: 0+0=0 1+0=1 0+1=1 1 + 1 = 10 Пример 1101 + 101 -----10010

Двоичная система счисления Вычитание одноразрядных двоичных чисел: 0 -0=0 1 -0=1 0 - 1 = (заем из старшего разряда) 1 1 -1=0 Пример: 1110 - 101 ---1001

Двоичная система счисления Умножение одноразрядных двоичных чисел: 0*0=0 1*0=0 0*1=0 1*1=1 Пример: 1110 * 10 -----+ 0000 1110 -------11100

Двоичная система счисления Деление выполняется так же как в десятичной системе счисления: 1110 10 11 10 10 10 111

Выполнение арифметических операций над двоичными числами разных порядков: сравниваются порядки; и выравниваются выполняется сложение или вычитание мантиссы; производится нормализация результата, если это нужно.

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Сложение Х 1=0, 1001*2101 Х 2=0, 1100*2100 1) р=101 -100=001 Х 2=0, 0110*2101 2)0, 1001 +0, 0110 0, 1111 3) Х 1+ Х 2=0, 1111*2101

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Вычитание Х 1=0, 1001*2101 Х 2=0, 1100*2100 1) р=101 -100=001 Х 2=0, 0110*2101 2) 0, 1001 -0, 0110 0, 0011 3) Х 1 - Х 2=0, 0011*2101=0, 11*211

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Умножение Х 1=q 1*2 p 1 Х 2=q 2*2 p 2 Х 1=10=0, 10*210 Х 2=10=0, 10*210 0, 10 *0, 10 0 00 01 0 000____ 0, 0100 X 1*X 2=q 1*q 2*2(p 1+p 2) р1+р2=10+10=100 X 1*X 2=0, 0100*2100

Выполнение арифметических операций над двоичными числами разных порядков: Пример. Деление Х 1=q 1*2 p 1 Х 2=q 2*2 p 2 Х 1=0, 110=110*2 -11 Х 2=0, 10=10*2 -10 10 10 11 10 10 0 р1 -р2=-11 -(-10)=-01 =11*2 -01

В ПК используются следующие разрядные сетки для представления чисел: 1 байт (8 разрядов) – полуслово 2 байта (16 разрядов) – слово 4 байта (32 разряда) – двоичное слово 8 байт (64 разряда) – расширенное слово -310 = -112 в восьмиразрядной сетке будет иметь вид: 1000011 Для кодирования знака числа отводится специальный разряд, называемый знаковым. Под него отводится старший разрядной сетки, «+» кодируется 0, «-» кодируется 1.

Выполнение арифметических операций в машинных кодах позволяет: свести операцию вычитания к операции сложения автоматически получать знак суммы выявлять переполнение разрядной сетки

Виды машинных кодов Прямой код числа представляется в виде абсолютной величины со знаком двоичного числа – это само двоичное число, в котором все цифры, изображающие его значение, записываются как в математической записи, а знак записывается в виде кода (0, 1) в старшем разряде. Обратный код положительного числа совпадает с его прямым кодом. Дополнительный код положительного совпадает с его прямым кодом. числа

Виды машинных кодов Обратный код отрицательного числа получается с помощью замены значений всех цифр числа на противоположные за исключением знакового разряда. 310 = 112 в прямом, дополнительном и обратном коде будет иметь вид – 0000011 -310 = -112 прямом коде будет иметь вид: 1000011 -310 = -112 обратном коде будет иметь вид: 11111100

Виды машинных кодов Дополнительный код отрицательного числа получается в результате увеличения его обратного кода на 1. -310 = -112 обратном коде будет иметь вид: 11111100 -310 = -112 дополнительном коде будет иметь вид: 11111101

Пример 1. Выполнение операции в обратном коде Х 1 -Х 2=17 -5= 17+(-5)=12 [Х 1] пр=0001 [Х 2] пр=10000101 [Х 1] обр=0001 [Х 2] обр=11111010 При выполнении операций в обратном коде единица, ушедшая за 8 разряд, прибавляется к младшему разряду числа.

Пример 2. Х 1 -Х 2=5 -17= 5+(-17)=-12 [Х 1] пр=00000101 [Х 2] пр=10010001 00000101 +1110 11110011 обр. 10001100= -12 [Х 1] обр=00000101 [Х 2] обр=1110 Ответ всегда записывается в прямом коде. Если в результате получилось отрицательное число, то его необходимо перевести в прямой код.

Пример 3. Выполнение операции в дополнительном коде Х 1 -Х 2=17 -5= 17+(-5)=12 [Х 1] пр=0001 [Х 2] пр=10000101 [Х 1] обр=0001 [Х 2] обр=11111010 [Х 1] доп=0001 [Х 2] доп=11111011 При выполнении операций в дополнительном коде Единица, ушедшая за 8 разряд ВЫБРАСЫВАЕТСЯ.

Пример 4. Х 1 -Х 2=5 -17= 5+(-17)=-12 [Х 1] пр=00000101 [Х 2] пр=10010001 [Х 1] обр=00000101 [Х 2] обр= 1110 [Х 1] доп=00000101 [Х 2] доп= 11101111 Получили отрицательное число в доп. коде. Для перевода его в прямой код необходимо: 1. Проинвертировать все разряды числа, за исключением знакового; 2. Еще раз прибавить 1 к младшему разряду.

Модифицированный дополнительный машинный коды Модифицированный дополнительный код получается из дополнительного простым дублированием знакового разряда. "00" соответствует знаку "+", "11" - знаку "-". Любая другая комбинация ("01" или "10"), получившаяся в знаковых разрядах служит признаком переполнения разрядной сетки и получившийся результат – неверный. знак 5 4 3 2 1 0

Пример Переведем X и Y в модифицированный дополнительный код: Выполним сложение: В данном примере запятой отделены знаковые разряды!! Переполнения нет (в знаковых разрядах "00" – в результате получено положительное число), поэтому полученный результат - верный (X+Y=1111=41 -26= 15).

Пример 2 Обычная запись числа Х= -41= - 101001 У= 26= + 011010 Модифицированный обратный код 11 010110 00 011010 Модифицированный дополнительный код 11 010111 00 011010 Х+У= -41+26= -15 11 010111 +00 011010 11 110001 доп. модиф. код Переполнения нет (в знаковых разрядах "11" – в результате получено отрицательное число), поэтому полученный результат – нужно переводить в прямой код. 11 110001 доп. модиф. код 11 001110 обратный. модиф. код + 1 11 001111 , что соответствует числу - 1510

Сложение и вычитание эффективно выполнять в исходной системе счисления. Способ с переводом каждого числа в 10-тичную систему, выполнении действия в ней, а затем обратного преобразования существенно длиннее и зачастую приводит к ошибкам.

При сложении чисел в произвольной позиционной системе счисления с основанием р в каждом разряде производится сложение цифр слагаемых и цифры, переносимой из соседнего младшего разряда, если она имеется. При этом необходимо учитывать, что если при сложении чисел получилось число, большее или равное р, то представляем его в виде p*k + b, где kÎ N – количество единиц переноса в следующий разряд 0 ≤ b ≤ p - 1

При сложении и вычитании двоичных чисел достаточно знать правила сложения двоичных цифр (таблицу сложения двоичной системы):

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10

+ 1101 2

1 +1 = 2 = 1

0 +0 + 1 = 1

1 + 1 = 2 = 1 *2 + 0 («1» переносится в старший разряд)

1 + 0 + 1 = 2 = 1 *2 + 0 («1» переносится в старший разряд)

5 +6 = 11 = 1 *8 + 3 («1» переносится в старший разряд)

4 +1 + 1 = 6

6 + 3 = 9 = 1 *8 + 1 («1» переносится в старший разряд)

7 + 0 + 1 = 8 = 1 *8 + 0 («1» переносится в старший разряд)

+ E836 16

10 +6 = 16 = 1 *16 + 0 («1» переносится в старший разряд)

15 +3 + 1 = 19 = 1 *16 + 3 («1» переносится в старший разряд)

9 + 8 + 1 = 18 = 1 *16 + 2 («1» переносится в старший разряд)

0 + 14 + 1 = 15 = F

При вычитании чисел в р цифры вычитаются поразрядно. Если в рассматриваемом разряде необходимо от меньшего числа отнять большее, то занимается единица в следующем (старшем разряде). Занимаемая единица равна р единицам этого разряда (аналогично, когда занимаем единицу в десятичной системе счисления, то занимаемая единица равна 10.) Для двоичной системы счисления занимаемая единица = 2 10 = 10 2 , для восьмеричной системы счисления занимаемая единица = 8 10 = 10 8 , для шестнадцатеричной системы счисления занимаемая единица = 16 10 = 10 16 .

Примеры: Точками в примерах с вычитанием отмечены разряды, из которых приходилось занимать.

2 – 1 = 1 (так как 0 < 1 пришлось занять из соседнего разряда)

2 – 1 = 1 (так как 0 < 1 пришлось занять из соседнего разряда)

В этом разряде остался 0, вновь пришлось занимать из старшего разряда: 2 – 1 = 1

В этом разряде остался 0

8 + 5 – 6 = 7 (так как 5 < 6 пришлось занять из соседнего разряда)


8 + 0 – 4 = 4 (после того, как заняли, в этом разряде остался 0)

16 + 6 – 10 = 12 = C 16 (заняли из соседнего разряда)

16 + 2 – 15 = 3 (В этом разряде осталась 2, заняли из соседнего разряда)

16 + 7 – 9 = 14 = Е 16

В этом разряде осталась D 16

Иногда при вычитании необходимо занимать единицу через несколько разрядов, так как в соседнем или в нескольких соседних разрядах подряд стоят нули. В этом случае надо иметь в виду, что в этих разрядах на месте нулей после того, как заняли, будет располагаться «последняя цифра» той системы счисления, в которой записано уменьшаемое, т.е. цифра 1 для двоичной, цифра 7 для восьмеричной и цифра F для 16-ричной систем счисления.

· 1 1 2 · 7 7 8 · F F 16

1000 2 1000 8 1000 16

11 2 11 8 AD 16

101 2 767 8 F53 16

Замечание . При выполнении арифметических операций с числами, которые находятся в разных системах счисления, необходимо перевести числа в одну и ту же систему и только потом выполнять действие. Конечно, можно в качестве такой системой счисления выбрать десятичную систему, однако, в случае, когда в числах много цифр, такой перевод будет трудоемким. Например, при переводе числа 123456789ABCDEF 16 в десятичную систему придется вычислять 16 в степенях вплоть до четырнадцатой.

Умножение в позиционной системе счисления является достаточно сложным действием, поэтому более надежно умножение выполнять в 10-тичной системе с предварительным и завершающим переводом в исходную систему. Однако умножение на 2 можно представить в виде суммы. Например: 2*Т, где Т = 315 8

2 * 315 8 = 315 8

При умножении на 7 10 , 8 10 , 9 10 можно воспользоваться переводом в десятичную систему. Но так как десятичное число 8 равно 8-ричному числу 10 (8 10 = 10 8), тогда умножение можно заменить умножением на десять с последующим вычитанием или сложением.

1) 8 10 * 6271 8 = 10 8 * 6271 8 = 62710 8

2) 7 10 * 6271 8 = (8 10 – 1 10) * 6271 8 = (10 8 – 1 8) * 6271 8 =

3) 9 10 * 6271 8 = (8 10 + 1 10) * 6271 8 = (10 8 + 1 8) * 6271 8 =

Замечание . Если второй сомножитель представлен в двоичной или шестнадцатеричной системе, его предварительно необходимо перевести в восьмеричную систему счисления, например: 7 10 * А3С5 16 .

Сначала переведите А3С5 16 в восьмеричную систему, используя метод тетрад и триад, а затем выполните умножение.

А3С5 16 = 1010 0011 1100 0101 2 = 001 010 001 111 000 101 2 = 121705 8 .

7 10 * 121705 8 = (8 10 – 1 10) * 121705 8 = (10 8 – 1 8) * 121705 8 =

121705 8

При умножении на 15 10 , 16 10 , 17 10 можно воспользоваться тем фактом, десятичное число 16 равно 16-ричному числу 10 (16 10 = 10 16). В этом случае, как и в предыдущем, умножение можно заменить умножением на десять с последующим вычитанием или сложением.

1) 16 10 * A6D5 16 = 10 16 * A6D5 16 = A6D50 16

2) 15 10 * A6D5 16 = (16 10 – 1 10) * A6D5 16 = (10 16 – 1 16) * A6D5 16 =

3) 17 10 * A6D5 16 = (16 10 + 1 10) * A6D5 16 = (10 16 + 1 16) * A6D5 16 =

Замечание . Если второй сомножитель представлен в двоичной или восьмеричной системе, его предварительно необходимо перевести в шестнадцатеричную систему счисления, например: 17 10 * 7154 8 .

Сначала переведите 7154 8 в шестнадцатеричную систему, используя метод тетрад и триад, а затем выполните умножение.

7154 8 = 111 001 101 100 2 = 1110 0110 1100 2 = E6C 16 .

17 10 * E6C 16 = (16 10 + 1 10) * E6C 16 = (10 16 + 1 16) * E6C 16 =

Арифметические операции во всех позиционных системах счисления выполняются по одним и тем же правилам. Для проведения арифметических операций над числами, представленными в различных системах счисления, необходимо предварительно преобразовать их в одну систему счисления и учесть то, что перенос в следующий разряд при операции сложения и заем из старшего разряда при операции вычитания определяется величиной основания системы счисления.

Арифметические операции в двоичной системе счисления основаны на таблицах сложения, вычитания и умножения одноразрядных двоичных чисел.

При сложении двух единиц происходит переполнение разряда и производится перенос единицы в старший разряд, при вычитании 0–1 производится заем из старшего разряда, в таблице «Вычитание» этот заем обозначен 1 с чертой над цифрой (Таблица 3).

Таблица 3

Ниже приведены примеры выполнения арифметических операций над числами, представленными в различных системах счисления:

Арифметические операции над целыми числами, представленными в различных системах счисления, достаточно просто реализуются с помощью программ Калькулятор и MS Excel.

1.3. Представление чисел в компьютере

Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в памяти компьютера в двоичном коде, т. е. в виде последовательности нулей и единиц, и могут быть представлены в формате с фиксированной или плавающей запятой.

Целые числа хранятся в памяти в формате с фиксированной запятой. При таком формате представления чисел для хранения целых неотрицательных чисел отводится регистр памяти, состоящий из восьми ячеек памяти (8 бит). Каждому разряду ячейки памяти соответствует всегда один и тот же разряд числа, а запятая находится справа после младшего разряда и вне разрядной сетки. Например, число 110011012 будет храниться в регистре памяти следующим образом:

Таблица 4

Максимальное значение целого неотрицательного числа, которое может храниться в регистре в формате с фиксированной запятой, можно определить из формулы: 2n – 1, где n – число разрядов числа. Максимальное число при этом будет равно 28 – 1 = 25510 = 111111112и минимальное 010 = 000000002. Таким образом, диапазон изменения целых неотрицательных чисел будет находиться в пределах от 0 до 25510.

В отличие от десятичной системы в двоичной системе счисления при компьютерном представлении двоичного числа отсутствуют символы, обозначающие знак числа: положительный (+) или отрицательный (-), поэтому для представления целых чисел со знаком в двоичной системе используются два формата представления числа: формат значения числа со знаком и формат дополнительного кода. В первом случае для хранения целых чисел со знаком отводится два регистра памяти (16 бит), причем старший разряд (крайний слева) используется под знак числа: если число положительное, то в знаковый разряд записывается 0, если число отрицательное, то – 1. Например, число 53610 = 00000010000110002 будет представлено в регистрах памяти в следующем виде:

Таблица 5

а отрицательное число -53610 = 10000010000110002 в виде:

Таблица 6

Максимальное положительное число или минимальное отрицательное в формате значения числа со знаком (с учетом представления одного разряда под знак) равно 2n-1 – 1 = 216-1 – 1 = 215 – 1 = 3276710 = 1111111111111112 и диапазон чисел будет находиться в пределах от -3276710 до 32767.

Наиболее часто для представления целых чисел со знаком в двоичной системе применяется формат дополнительного кода, который позволяет заменить арифметическую операцию вычитания в компьютере операцией сложения, что существенно упрощает структуру микропроцессора и увеличивает его быстродействие.

Для представления целых отрицательных чисел в таком формате используется дополнительный код, который представляет собой дополнение модуля отрицательного числа до нуля. Перевод целого отрицательного числа в дополнительный код осуществляется с помощью следующих операций:

1) модуль числа записать прямым кодом в n (n = 16) двоичных разрядах;

2) получить обратный код числа (инвертировать все разряды числа, т. е. все единицы заменить на нули, а нули – на единицы);

3) к полученному обратному коду прибавить единицу к младшему разряду.

Например, для числа -53610 в таком формате модуль будет равен 00000010000110002, обратный код – 1111110111100111, а дополнительный код – 1111110111101000.

Необходимо помнить, что дополнительный код положительного числа – само число.

Для хранения целых чисел со знаком помимо 16-разрядного компьютерного представления, когда используются два регистра памяти (такой формат числа называется также форматом коротких целых чисел со знаком), применяются форматы средних и длинных целых чисел со знаком. Для представления чисел в формате средних чисел используется четыре регистра (4 х 8 = 32 бит), а для представления чисел в формате длинных чисел – восемь регистров (8 х 8 = 64 бита). Диапазоны значений для формата средних и длинных чисел будут соответственно равны: -(231 – 1) … + 231 – 1 и -(263-1) … + 263 – 1.

Компьютерное представление чисел в формате с фиксированной запятой имеет свои преимущества и недостатки. К преимуществам относятся простота представления чисел и алгоритмов реализации арифметических операций, к недостаткам – конечный диапазон представления чисел, который может быть недостаточным для решения многих задач практического характера (математических, экономических, физических и т. д.).

Вещественные числа (конечные и бесконечные десятичные дроби) обрабатываются и хранятся в компьютере в формате с плавающей запятой. При таком формате представления числа положение запятой в записи может изменяться. Любое вещественное число К в формате с плавающей запятой может быть представлено в виде:

где А – мантисса числа; h – основание системы счисления; p – порядок числа.

Выражение (2.7) для десятичной системы счисления примет вид:

для двоичной -

для восьмеричной -

для шестнадцатеричной -

Такая форма представления числа также называется нормальной . С изменением порядка запятая в числе смещается, т. е. как бы плавает влево или вправо. Поэтому нормальную форму представления чисел называют формой с плавающей запятой . Десятичное число 15,5, например, в формате с плавающей запятой может быть представлено в виде: 0,155 · 102; 1,55 · 101; 15,5 · 100; 155,0 · 10-1; 1550,0 · 10-2 и т. д. Эта форма записи десятичного числа 15,5 с плавающей запятой не используется при написании компьютерных программ и вводе их в компьютер (устройства ввода компьютеров воспринимают только линейную запись данных). Исходя из этого выражение (2.7) для представления десятичных чисел и ввода их в компьютер преобразовывают к виду

где Р – порядок числа,

т. е. вместо основания системы счисления 10 пишут букву Е, вместо запятой – точку, и знак умножения не ставится. Таким образом, число 15,5 в формате с плавающей запятой и линейной записи (компьютерное представление) будет записано в виде: 0.155Е2; 1.55Е1; 15.5Е0; 155.0Е-1; 1550.0Е-2 и т.д.

Независимо от системы счисления любое число в форме с плавающей запятой может быть представлено бесконечным множеством чисел. Такая форма записи называется ненормализованной . Для однозначного представления чисел с плавающей запятой используют нормализованную форму записи числа, при которой мантисса числа должна отвечать условию

где |А| - абсолютное значение мантиссы числа.

Условие (2.9) означает, что мантисса должна быть правильной дробью и иметь после запятой цифру, отличную от нуля, или, другими словами, если после запятой в мантиссе стоит не нуль, то число называется нормализованным. Так, число 15,5 в нормализованном виде (нормализованная мантисса) в форме с плавающей запятой будет выглядеть следующим образом: 0,155 · 102, т. е. нормализованная мантисса будет A = 0,155 и порядок Р = 2, или в компьютерном представлении числа 0.155Е2.

Числа в форме с плавающей запятой имеют фиксированный формат и занимают в памяти компьютера четыре (32 бит) или восемь байт (64 бит). Если число занимает в памяти компьютера 32 разряда, то это число обычной точности, если 64 разряда, то это число двойной точности. При записи числа с плавающей запятой выделяются разряды для хранения знака мантиссы, знака порядка, мантиссы и порядка. Количество разрядов, которое отводится под порядок числа, определяет диапазон изменения чисел, а количество разрядов, отведенных для хранения мантиссы, – точность, с которой задается число.

При выполнении арифметических операций (сложение и вычитание) над числами, представленными в формате с плавающей запятой, реализуется следующий порядок действий (алгоритм) :

1) производится выравнивание порядков чисел, над которыми совершаются арифметические операции (порядок меньшего по модулю числа увеличивается до величины порядка большего по модулю числа, мантисса при этом уменьшается в такое же количество раз);

2) выполняются арифметические операции над мантиссами чисел;

3) производится нормализация полученного результата.