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

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

Своя система существует и в вычислительной технике - она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 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:

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

| Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 10 классы | Планирование уроков на учебный год (ФГОС) | Арифметические операции в позиционных системах счисления

Урок 15
§12. Арифметические операции в позиционных системах счисления

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

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

В начальной школе для обучения детей счёту используют таблицы сложения и умножения. Подобные таблицы можно составить для любой позиционной системы счисления.

12.1. Сложение чисел в системе счисления с основанием q

Рассмотрите примеры таблиц сложения в троичной (табл. 3.2), восьмеричной (табл. 3.4) и шестнадцатеричной (табл. 3.3) системах счисления.

Таблица 3.2

Сложение в троичной системе счисления

Таблица 3.3

Сложение в шестнадцатеричной системе счисления

Таблица 3.4

Сложение в восьмеричной системе счисления

q получить сумму S двух чисел А и Б , надо просуммировать образующие их цифры по разрядам i справа налево:

Если a i + b i < q, то s i = a i + b i , старший (i + 1)-й разряд не изменяется;
если a i + b i ≥ q, то s i = а i + b i - q, старший (i + 1)-й разряд увеличивается на 1.

Примеры:

12.2. Вычитание чисел в системе счисления с основанием q

Чтобы в системе счисления с основанием q получить разность R двух чисел А и В , надо вычислить разности образующих их цифр по разрядам i справа налево:

Если a i ≥ b i , то r i = a i - b i , старший (i + 1)-й разряд не изменяется;
если a i < b i , то r i = a i - b i + g, старший (i + 1)-й разряд уменьшается на 1 (выполняется заём в старшем разряде).

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

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

Примеры с двоичными числами:

101001 101 10111 1100,01

1011 + 011 + 10110 - 0,10

110100 1000 101101 1011,11

Умножение

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

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

00000 + 100111

00000 + 100111

11011 + 100111

11110011 101011010001

Деление

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

101001101 1001 − 333 9 11110 110

1001 100101 27 37 - 110 101

1001 1001000 1000

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

Процессор не умеет непосредственно осуществлять операцию вычитания, поэтому вычитание приходится сводить к сложению путем представления вычитаемого в так называемом дополнительном коде. Рассмотрим прежде всего обратный код числа. Например, 1001 (исходное число), а 0110 - обратный код + 1 = 0111 дополнительный код.

Т.е. вычитание в двоичной арифметике – это сложение уменьшаемого с дополнительным кодом вычитаемого. Например, из 101 2 вычесть 10 2

1) 10 2 = 010, его обратный код 101

2) затем увеличив обратный код на 1 получим дополнительный код 110

110 (или 5-2=3)

4) Отметим, что перенос из старшего результата означает, что полученный результат положителен

Вопросы для самоконтроля

    Что называется системой счисления?

    В чем отличие позиционных систем счисления от непозиционных?

    Как определяется процесс кодирования информации и почему в нем существует необходимость?

    Какие единицы измерения количества информации вы знаете?

    Почему двоичное представление информации входит в число основных принципов работы современных ЭВМ?

    Переведите из двоичной системы счисления в десятичную: 10100011 2 и 1101011 2 .

    Что такое базис естественной позиционной системе счисления?

    Какие методы перевода чисел от одной системы счисления в другую вы знаете?

Дополнительный материал

Пример 1. Сложим числа 15 и 6 в различных системах счисления.

Пример 2. Сложим числа 15, 7 и 3.

Шестнадцатеричная: F 16 +7 16 +3 16

Ответ: 5+7+3 =25 10 =11001 2 =31 8 = 9 16 .

Проверка: 11001 2 = 2 4 + 2 3 + 2 0 = 16+8+1=25, 31 8 = 3*8 1 + 1*8 0 = 24 + 1 = 25, 19 16 = 1*16 1 + 9*16 0 = 16+9 = 25.

Пример 3. Сложим числа 141,5 и 59,75.

Ответ: 141,5 + 59,75 = 201,25 10 = 11001001,01 2 = 311,2 8 = C9,4 16

Проверка. Преобразуем полученные суммы к десятичному виду: 11001001,01 2 = 2 7 + 2 6 + 2 3 + 2 0 + 2 -2 = 201,25 311,2 8 = 3*8 2 + 1 8 1 + 1*8 0 + 2*8 -1 = 201,25 C9,4 16 = 12*16 1 + 9*16 0 + 4*16 -1 = 201,25

Двоичная система счисления Сложение одноразрядных двоичных чисел: 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

В продолжение темы:
Программы

Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми...

Новые статьи
/
Популярные