div.main {margin-left: 20pt; margin-right: 20pt}
ОСНОВЫ
МАШИННОЙ АРИФМЕТИКИ
Системы счисления и способы перевода
чисел
из одной системы в другую.
Системой
счисления называют систему приемов и правил, позволяющих устанавливать
взаимно-однозначное соответствие между любым числом и его представлением в виде
совокупности конечного числа символов. Множество символов, используемых для
такого представления, называют цифрами .
В
зависимости от способа изображения чисел с помощью цифр системы счисления
делятся на позиционные и непозиционные.
В
непозиционных системах любое число определяется как некоторая функция от
численных значений совокупности цифр, представляющих это число. Цифры в
непозиционных системах счисления соответствуют некоторым фиксированным числам.
Пример непозиционной системы - римская система счисления. В вычислительной
технике непозиционные системы не применяются.
Систему
счисления называют позиционной, если одна и та же цифра может принимать
различные численные значения в зависимости от номера разряда этой цифры в
совокупности цифр, представляющих заданное число. Пример такой системы -
арабская десятичная система счисления.
В
позиционной системе счисления любое число записывается в виде последовательности
цифр:
A
= + am-1 am-2 ... ak ... a0 ,
a-1 ... a-l (I)
Позиции,
пронумерованные индексами k (-l < k < m-1) называются разрядами числа.
Сумма m+l соответствует количеству разрядов числа (m - число разрядов целой
части числа, l - дробной части).
Каждая
цифра ak в записываемой последовательности может принимать одно из N
возможных значений. Количество различных цифр (N), используемых для изображения
чисел в позиционной системе счисления, называется основанием системы счисления.
Основание N указывает, во сколько раз единица k+1 -го разряда больше единицы k
-го разряда, а цифра ak соответствует количеству единиц k -го
разряда, содержащихся в числе.
Таким
образом, число может быть представлено в виде суммы:
(A)N
= +(am-1Nm-1 + am-2Nm-2 +...+
a0 + a-1N-1 +...+ a-lN-l)
(II)
Основание
позиционной системы счисления определяет ее название. В вычислительной технике
применяются двоичная , восьмеричная, десятичная и шестнадцатеричная системы. В дальнейшем,
чтобы явно указать используемую систему счисления, будем заключать число в
скобки и в индексе указывать основание системы счисления.
В
двоичной системе счисления используются только две цифры: 0 и 1. Любое двоичное
число может быть представлено в следующей форме:
(A)2 = +(am-12m-1 +
am-22m-2 + ... + a0 +
a-12-1 + ... + a-l2-l)
Например,
двоичное число
(10101,101)2
=
1*24+0*23+1*22+0*2+1+1*2-1+0*2-2+1*2-3
= (21,625)10
В
восьмеричной системе счисления для записи чисел используется восемь цифр
(0,1,2,3,4,5,6,7), а в шестнадцатеричной - шестнадцать
(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).
Таблица
для перевода чисел из одной системы счисления в другую
Двоичные числа |
Восьмиричные числа |
Десятичные числа |
Шестнадцатеричные числа |
0,0001 0,001 0,01 0,1 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 |
0,04 0,1 0,2 0,4 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 |
0,0625 0,125 0,25 0,5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
0,1 0,2 0,4 0.8 1 2 3 4 5 6 7 8 9 A B C D E F 10 |
Для
хранения и обработки данных в ЭВМ используется двоичная система, так как она
требует наименьшего количества аппаратуры по сравнению с другими системами. Все
остальные системы счисления применяются только для удобства пользователей.
В
двоичной системе очень просто выполняются арифметические и логические операции
над числами.
Таблица
сложения:
0
+ 0 = 0
0
+ 1 = 1
1
+ 0 = 1
1
+ 1 = 10
Таблица
умножения:
0
* 0 = 0
0
* 1 = 0
1
* 0 = 0
1
* 1 = 1
Многоразрядные числа складываются, вычитаются, умножаются и делятся по тем же
правилам, что и в десятичной системе счисления.
Перевод
числа из одной системы в другую выполняется по универсальному алгоритму,
заключающемуся в последовательном делении целой части числа и
образующихся целых частных на основание новой системы счисления,
записанное в исходной системе счисления, и в последующем
умножении дробной части и дробных частей получающихся
произведений на то же основание, записанное в исходной системе счисления.
TreasureChest
- это интересно.
При
переводе целой части
получающиеся в процессе последова-
тельного
деления остатки представляют цифры целой части числа в
новой
системе счисления, записанные цифрами исходной системы
счисления.
Последний остаток является старшей цифрой переведенного числа.
При
переводе дробной части числа целые части чисел, получающихся при
умножении, не участвуют в последующих умножениях. Они представляют собой цифры
дробной части исходного числа в новой системе счисления, изображенные числами
старой системы. Значение первой целой части является первой цифрой после
запятой переведенного числа.
Пример перевода числа 30,6 из десятичной системы в двоичную:
Перевод целой части
|
Перевод дробной
части
|
Последовательное деление
|
Остатки
|
|
Целые части - разряды переведенной
дроби
|
Последовательное умножение
|
30 / 2 15 / 2 7 /
2 3 / 2 1 / 2 0 |
0---------- 1---------
| 1------ | | 1-----
| | | 1--- | | |
| | | | |
| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
--------- | | | |
------- | | | | |
| | | ------ | | |
| | | | | | | |
| ---- | | | | |
0,
-------------------- 1,
-------------------- 0,
-------------------- 0,
-------------------- 1,
|
6 X 2 -- 2 X 2 -- 4 X 2 -- 8 X 2 -- 6
|
Результат:1 1 1 1 0, 1 0 0
1 |
Если
при переводе дробной части получается периодическая дробь, то производят
округление, руководствуясь заданной точностью вычислений.
Пример
перевода числа 111110,01 из двоичной системы в десятичную.
Перевод целой части |
Перевод дробной части |
_111110|__1010
_1010 |110
------
1011
|
_1010
| 10
------------------
| |
----
| |
|
| |
|
| |
|
| | |
--
| | | | |
0,
0100
X
1010
------------------- ----
10,
1000
Х
1010 ------------------- 101,
0000
|
6 2, 2 5 |
Примечание
1: 1010 - основание десятичной системы счисления в двоичной записи.
Примечание
2: десятичные эквиваленты разрядов искомого числа находим по таблице.
При
переводе чисел из любой системы счисления в десятичную удобнее пользоваться
непосредственно формулой (II):
(775)8 = 7*82 + 7*8 + 5 =
(509)10
Для
осуществления автоматического перевода десятичных чисел в двоичную систему
счисления необходимо вначале каким-то образом ввести их в машину, Для этой цели
обычно используется двоично-десятичная запись чисел или представление этих чисел
в кодах ASCII.
При
двоично-десятичной записи каждая цифра десятичного числа заменяется
четырехзначным двоичным числом (тетрадой):
(983,65)10 = (1001 1000 0011, 0110
0101)2-10
При
записи чисел в кодах ASCII цифрам от 0 до 9 поставлены в соответствие
восьмиразрядные двоичные коды от 00110000 до
- новый век, новые возможности.
00111001.
ЭВМ,
предназначенные для обработки экономической информации, например IBM AT,
позволяют производить арифметические операции в десятичной системе счисления над
числами, представленными в двоично-десятичных кодах и кодах ASCII.
Шестнадцатеричная
и восьмеричная системы счисления используются только программистами и
операторами ЭВМ, так как представление чисел в этих системах более компактное,
чем в двоичной, и перевод из этих систем в двоичную и обратно выполняется
очень просто (основания этих систем представляют собой целую степень числа
2).
Для
перевода восьмеричного числа в двоичное достаточно каждый восьмеричный разряд
представить тремя двоичными (триадой), а для перевода шестнадцатиричного числа -
четырьмя (тетрадой):
(376,51)8 = (011 111 110, 101 001)2
(1AF8)16 = (0001 1010 1111 1000)2
|