Над числами, записанными в любой системе счисления, можно производить различные арифметические операции. Правила выполнения этих операций в десятичной системе хорошо известны - это сложение, вычитание, умножение столбиком иделение углом . Эти правила применимы и ко всем другим позиционным системам счисления. Толькотаблицами сложения и умножения надо пользоваться особыми для каждой системы .
При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево. Сложение и умножение двоичных чисел выполняется по правилам:
Примеры с двоичными числами:
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–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) производится нормализация полученного результата.
| Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 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 (выполняется заём в старшем разряде).
Примечание:
Выполнять действия можно только в одной системе счисления, если вам даны разные системы счисления, сначала переведите все числа в одну систему счисления
Если вы работаете с системой счисления, основание которой больше 10 и у вас в примере встретилась буква, мысленно замените её цифрой в десятичной системе, проведите необходимые операции и переведите результат обратно в исходную систему счисления
Сложение:
Все помнят, как в начальной школе нас учили складывать столбиком, разряд с разрядом. Если при сложении в разряде получалось число больше 9, мы вычитали из него 10, полученный результат записывали в ответ, а 1 прибавляли к следующему разряду. Из этого можно сформулировать правило:
- Складывать удобнее «столбиком»
- Складывая поразрядно, если цифра в разряде > больше самой большой цифры алфавита данной Системы счисления, вычитаем из этого числа основание системы счисления.
- Полученный результат записываем в нужный разряд
- Прибавляем единицу к следующему разряду
Сложить 1001001110 и 100111101 в двоичной системе счисления
1001001110 |
100111101 |
1110001011 |
Ответ: 1110001011
Сложить F3B и 5A в шестнадцатеричной системе счисления
FE0 |
Ответ: FE0
Вычитание:Все помнят, как в начальной школе нас учили вычитать столбиком, разряд из разряда. Если при вычитании в разряде получалось число меньше 0, мы то мы «занимали» единицу из старшего разряда и прибавляли к нужной цифре 10, из нового числа вычитали нужное. Из этого можно сформулировать правило:
Пример:
Вычесть из 1001001110 число 100111101 в двоичной системе счисления
1001001110 |
100111101 |
100010001 |
Ответ: 100010001
Вычесть из F3B число 5A в шестнадцатеричной системе счисления
D9 6 |
Ответ: D96
Самое главное, не забывайте про то, что у вас в распоряжении только цифры данной системы счисления, так же не забывайте про переходы между разрядными слагаемыми.
Умножение:
Умножение в других системах счисления происходит точно так же, как и мы привыкли умножать.
- Умножать удобнее «столбиком»
- Умножение в любой системе счисления происходит по тем же правилам, что и в десятичной. Но мы можем использовать только алфавит, данный системы счисления
Умножить 10111 на число 1101 в двоичной системе счисления
10111 |
1101 |
10111 |
10111 |
10111 |
100101011 |
Ответ: 100101011
Умножить F3B на число A в шестнадцатеричной системе счисления
F3B |
984E |
Ответ: 984E
Ответ: 984E
Самое главное, не забывайте про то, что у вас в распоряжении только цифры данной системы счисления, так же не забывайте про переходы между разрядными слагаемыми.Деление:
Деление в других системах счисления происходит точно так же, как и мы привыкли делить.
- Делить удобнее «столбиком»
- Деление в любой системе счисления происходит по тем же правилам, что и в десятичной. Но мы можем использовать только алфавит, данный системы счисления
Пример:
Разделить 1011011 на число 1101 в двоичной системе счисления
Разделить F 3 B на число 8 в шестнадцатеричной системе счисления
Самое главное, не забывайте про то, что у вас в распоряжении только цифры данной системы счисления, так же не забывайте про переходы между разрядными слагаемыми.
НЕПОЗИЦИОННЫЕ
Непозиционные системы счисления
Непозиционные системы счисления появились исторически первыми. В этих системах значение каждого цифрового символа постоянно и не зависит от его положения. Простейшим случаем непозиционной системы является единичная, для которой для обозначения чисел используется единственный символ, как правило это черта, иногда точка, которых всегда ставится количество, соответствующее обозначаемому числу:
- 1 - |
- 2 - ||
- 3 - |||, и т. д.
Таким образом, этот единственный символ имеет значение единицы , из которой последовательным сложением получается необходимое число:
||||| = 1+1+1+1+1 = 5.
Модификацией единичной системы является система с основанием, в которой есть символы не только для обозначения единицы, но и для степеней основания. Например, если за основание взято число 5, то будут дополнительные символы для обозначения 5, 25, 125 и так далее.
Примером такой системы с основанием 10 является древнеегипетская, возникшая во второй половине третьего тысячеления до новой эры. В этой системе имелись следующие иероглифы:
- шест - единицы,
- дуга - десятки,
- пальмовый лист - сотни,
- цветок лотоса - тысячи.
Числа получались простым сложением, порядок следования мог быть любым. Так, для обозначения, например, числа 3815, рисовали три цветка лотоса, восемь пальмовых листов, одну дугу и пять шестов. Более сложные системы с дополнительными знаками - старая греческая, римская. Римская также использует элемент позиционной системы - большая цифра, стоящая перед меньшей, прибавляется, меньшая перед большей - вычитается: IV = 4, но VI = 6, этот метод, правда, применяется исключительно для обозначения чисел 4, 9, 40, 90, 400, 900, 4000, и производных их сложением.
Новогреческая и древнерусская системы использовали в качестве цифр 27 букв алфавита, где ими обозначалось каждое число от 1 до 9, а также десятки и сотни. Такой подход обеспечил возможность записывать числа от 1 до 999 без повторений цифр.
В старорусской системе для обозначения больших чисел использовались специальные обрамления вокруг цифр.
В качестве словесной системы номерации до сих пор практически везде используется непозиционная. Словесные системы нумерации сильно привязаны в языку, и общие их элементы в основном относятся к общим принципам и названиям больших чисел (триллион и выше). Общие принципы, положенные в основу современных словесных нумераций вредполагают формирование обозначения посредством сложения и умножения значений уникальных названий.
Кроме десятичной существует неизмеримое количество других систем, при этом некоторые из них используются для представления и обработки информации в компьютере. Существуют два вида систем счисления: позиционные и непозиционные.
Непозиционными системами называются такие, у которых каждая цифра сохраняет свое значение независимо от места нахождения в числе. Примером может служить римская система счисления, в которой используются такие цифры как I, V, X, L, C, D, M и т.д.
Позиционными называются системы счисления, в которых значение каждой цифры зависит от её места положения. Позиционная система характеризуется основой исчисления, под которой будет пониматься такое число £, которое показывает, сколько единиц какого-либо разряда необходимо для получения единица старшего порядка.
Например, можно записать
Что соответствует числам в десятичной системе счисления
Индекс снизу указывает на основу счисления.
Для перевода положительных чисел, из одной системы счисления в другую известны два правила:
Перевод чисел из системы , в систему;
Перевод чисел из системы , в системус использованием арифметики системы;
Рассмотрим первое правило . Допустим, число в десятичной системе необходимо представить в двоичной системе . Для этого данное число делится на основание системы представленное в системе , т.е. на 2 10 . Остаток от деления будет младшим разрядом двоичного числа. Целая часть результата от деления вновь делится на 2. Операцию деления повторять столько раз, пока частное не будет меньше двух.
Пример: 89 10 перевести в двоичное число, пользуясь арифметикой десятичной системы счисления
89 10 → 1011001 2
Обратный перевод, согласно того же правила, следующий:
1011001 2 перевести в десятичное число, пользуясь арифметикой двоичной системы счисления
Двоичные числа 1000 и 1001 согласно таблице 2.1 соответственно равны 8 и 9. Поэтому 1011001 2 → 89 10
Иногда обратный перевод удобнее осуществлять, пользуясь общим правилом представления числа в какой-либо системе исчисления.
Рассмотрим второе правило. Перевод чисел из системы , в системус использованием арифметики системы. Для осуществления перевода необходимо каждую цифру числа в системеумножить на основание системы счисленияпредставленной в системе счисленияи в степени позиции этого числа. После чего полученные произведения суммируются.
Арифметические и логические операции
Арифметические операции
Рассмотрим арифметику двоичной системы счисления, так как именно она используется в современных компьютерах по следующим причинам:
Существуют простейшие физические элементы, которые имеют только два состояния и которые можно интерпретировать как 0 и 1;
Арифметическая обработка очень проста.
Числа в восьмеричной и шестнадцатеричной системах счисления обычно используется как средство замены длинного и поэтому неудобного представления двоичных чисел.
Операции сложения, вычитания и умножения в двоичной системе имеют вид:
Как уже было продемонстрировано ранее, чтобы обойтись только сумматором, то есть выполнять лишь операции сложения, операция вычитания заменена на сложение. Для этого код отрицательного числа формируется как дополнение до чисел 2, 10, 100 и т.д.