Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Информатике.doc
Скачиваний:
34
Добавлен:
12.03.2015
Размер:
2.14 Mб
Скачать
  1. Раздел 3

  2. Арифметические основы информатики Лекция 4. Системы счисления

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

- возможность представления любого числа в рассматриваемом, заранее назначенном диапазоне величин;

- единственность представления (любая комбинация символов соответствует одному и только одному числу);

- простоту операций с числами.

Все системы счисления разделяются на два больших класса – непозиционные и позиционные.

В непозиционнойсистеме счисления значения символов не зависят от положения в числе. Для образования таких систем используют, в основном, операции сложения и вычитания. Например, система с одним символом-палочкой встречалась у многих народов. Для изображения числа в этой системе нужно записать определенное множество палочек, равное данному числу. Эта система не эффективна, т.к. запись числа получается длинной. Другим примером непозиционной системы счисления является римская система, использующая набор следующих символов: I, V, X, L, C, D и т.д. В этой системе имеются отклонения от правила независимости значения цифры от положения в числе. В числах IV и VI символ I принимает соответственно значения –1 и +1.

В позиционнойсистеме счисления значение каждой цифры изменяется от ее положения (или позиции) в числе. Например, если взять число в привычной для нас десятичной системе: 903,87 – эта последовательность цифр представляет собой не что иное, как сокращенную запись выражения:

903,87=9´102+0´101+3´100+8´10-1+7´10-2.

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

Количество различных цифр, применяемых в позиционной системе счисления, называется ее основанием(для десятичной системы - от 0 до 9- десять ).

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

A(p)= an-1 an-2… a1 a0, a-1… a-m

в р-ичной системе означает число

где ai - цифры системы счисления, n и m – число целых и дробных разрядов числа.

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

В вычислительной технике широко используются двоичная, восьмеричная и шестнадцатеричная системы счисления. При этом для представления чисел в двоичной системе используются две цифры 0 и 1, в восьмеричной – 0, 1,…,7 и в шестнадцатеричной – цифры 0, 1,…,9 и знаки A, B, C, D, E, F (часто вместо этих знаков записывают символы

).

Пример 3.1. В качестве примера возьмем двоичное число 1001,1101(2). В соответствии с равенством (3.1 ) двоичное число можно определить следующим образом:

1001,1101(2)=1´23+0´22+0´21+1´20+1´2-1+1´2-2 + 0´2-3 + 1´2-4.

Если по правилам десятичной арифметики выполнить действия в правой части приведенного равенства, то можно получить значение этого числа в десятичной системе счисления (десятичный эквивалент двоичного числа):

1001, 1001(2)=9,8125(10).

В табл. 3.1 приведены эквиваленты десятичных чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления.

Таблица 3.1

Десятичная

Эквиваленты в системах счисления

Десятичная

Эквиваленты в системах счисления

цифра

p=2

p=8

p=16

цифра

p=2

p=8

p=16

0

0

0

0

8

1000

10

8

1

1

1

1

9

1001

11

9

2

10

2

2

10

1010

12

A

3

11

3

3

11

1011

13

B

4

100

4

4

12

1100

14

C

5

101

5

5

13

1101

15

D

6

110

6

6

14

1110

16

E

7

111

7

7

15

1111

17

F

Для записи одного и того же значения в различных системах счисления требуется разное число позиций или разрядов. Например, 96(10)=140(8)=1100000(2). Чем меньше основание системы счисления, тем больше длина числа (длина разрядной сетки). Если длина разрядной сетки задана, то это ограничивает максимальное по абсолютному значению число, которое можно записать.

Пусть длина разрядной сетки равна числу N. Тогда

A (p )max = pN - 1.

Если же задано максимальное абсолютное значение числа, то длина разрядной сетки N равна:

N=logP (A(P)max+1).

Интервал числовой оси, заключенный между максимальным и минимальными числами, называется диапазоном представления(ДП) чисел в данной системе счисления для заданной длины разрядной сетки:

-A (P)max ДП A(P)max .

В ЭВМ длина обрабатываемых чисел обычно ограничена следующими значениями: 1 байт (8 двоичных разрядов), 2 байта (16 разрядов), 4 байта (32 разряда) и 8 байт (64 разряда). Соответственно ограничены и значения чисел, записываемых с использованием этих разрядных сеток. Так, максимальное целое положительное число, которое можно записать с использованием 16 двоичных разрядов, равно 216-1 = =65535.

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

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

Рассмотрим сложение.

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

0+0 = 0

0+1 = 1

1+0 = 1

1+1 =10.

Примеры сложения чисел.

Пример 3.2. Пример 3.3.

101011, 1101(2)245,0(8)

10010, 1011(2)734,7(8)

111110, 1000 (2). 1201,7(8).

Правило вычитания чисел в системе счисления основанием р представляется так:

ak = ai - ajпри ai aj,

ak = p + ai– ajпри ai< aj,

т.е. при ai< ajзанимается ”1“ старшего разряда, содержащая р единиц младшего разряда. Таблица вычитания для двоичной системы счисления:

0-0=0

1-0=1

1-1=0

10-1=1 .

Примеры вычитания чисел:

Пример 3.4. Пример 3.5.

1001,01(2) 1352,2(8)

110,11 (2)743,5 (8)

0010,10 (2). 406,5(8) .

При умножении используется таблица умножения, которая может быть легко составлена из таблицы сложения. Так, скажем,

.

Таким же образом можно составить всю таблицу. Наиболее проста таблица для двоичной системы:

0´0=0

0´1=0

1´0=0

1´1=1.

Пример 3.6:

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

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

Пример 3.7. Разделить число 111111,01(2)на 101,1(2).

Умножим оба числа на 100 (2)и будем делить два целых числа:

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

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

Пусть задано число А(q)в q–ичной системе счисления. Требуется найти запись этого числа в р-ичной системе счисления, т.е. В(р).

Метод непосредственного замещения

Перевод чисел этим методом выполняется следующим образом:

- заданное число А(q)представляется в виде (3.1):

A(q)=an-1´qn-1+…+a0´q0+a –1´q-1+…+a-m´q-m ;

- все цифры aiи основание q в правой части записываются (замещаются) в системе счисления с новым основанием p и выполняются необходимые операции. При этом, если р>q, то изображение цифр в p-ичной системе совпадает с изображением чисел в q-ичной системе. Если же p<q, то необходимо знать представление чисел от p до q в системе счисления с основанием р.

Пример 3.8. Перевести число 357 (8)в десятичную систему счисления.

Решение. 357(8)=3´82+5´81+7´80=192+40+7=239(10).

Пример 3.9. Перевести число 13,5(10)в двоичную систему счисления.

Решение. 13,5(10)=1´101+3´100+5´10-1=1´1010+11+101/1010=1101,1(2).

Метод последовательного деления на основание

Этот метод используется для перевода только целых чисел.

Пусть число A(q)требуется записать в р-ичной системе. Допустим, что такое представление получено и новое число В(р)имеет вид:

A(q) = B(p) = bn-1 bn-2 … b1 b0 (p) = bn-1´pn-1 + bn-2´pn-2 + … + b1 p1+ b0.

Разделим число A(q)на р. Так как b0<p, то в результате деления получим целую часть:

A1 = bn-1´pn-2 + bn-2´pn-3 + … + b1

и остаток b0. Отсюда следует, что остаток от деления заданного числа на основаниe р равен значению цифры младшего разряда р-ичного числа. При этом, если p<q, то остаток является цифрой р-ичной системы счисления, а при p>q остаток представляет собой число в q-ичной системе счисления, которое соответствует цифре р-ичной системы (заметим, что деление должно выполняться в q-ичной системе счисления, т.е. в системе, в которой задано исходное число).

Чтобы найти цифру b1следует отбросить остаток b0, a А1вновь разделить на р. Получим целую часть

А2= bn-1´pn-3+ … b3´p + b2

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

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

Пример 3.10. Перевести десятичное число 38 в двоичную систему счисления.

Решение:

Ответ: B(2)=b5 b4 b3 b2 b1 b0(2)=100110(2).

Пример 3.11. Провести обратный перевод числа B(2)=100110(2)в десятичную систему счисления.

Решение: Сначала новое основание системы счисления представим в двоичной системе: 10(10)=1010(2). Далее делим число 100110(2)на основание 1010(2).

100110

1010

10010

1010

Ответ: 100110(2)=b1b0 (10)= 38(10).

Метод последовательного умножения на основание

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

Пусть правильную дробь A(q)требуется записать в системе счисления с основанием р. Предположим опять, что эта запись найдена

A(q)=B(p)=0, b-1 b-2… b-m(p)=b-1´p-1+b-2´p-2+…+b-m ´p-m.

Если умножить число А на основание новой системы счисления p, то целая часть произведения будет равна b-1, а дробная

A1=b-2´p-1+b-3´p-2 + … + b-m´p-m+1,

причем A1-правильная дробь, т.к. все ai < p.

Таким образом, в результате умножения числа А на основание р получается целая часть, равная значению цифры старшего разряда р-ичного числа. Продолжая умножать дробные части Ajна основание р (целые части при умножении отбрасываются), можно получить остальные цифры искомой дроби: ими являются целые части получаемых произведений. При этом, если p<q, то целые части произведения являются цифрами р-ичной системы счисления, а при p>q целые части представляют собой числа в q-ичной системе счисления, которые необходимо заменить цифрами р-ичной системы.

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

Пример 3.12. Перевести десятичную дробь A(10)=0,6875(10)в двоичную систему счисления.

Решение. Выполним следующие действия:

Ответ: B(2)=0, b-1b-2b-3b-4=0,1011(2).

Пример 3.13. Провести обратный перевод двоичного числа 0,1011(2)в десятичную дробь.

Решение. В данном примере p>q, поэтому сначала переведем р(10)в двоичную систему счисления: р=10(10)=1010(2). Выполним последовательные умножения:

Ответ: B(10)=0, b-1b-2b-3b-4= 0,6875.

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

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