Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика(лекции).doc
Скачиваний:
77
Добавлен:
21.03.2015
Размер:
2.71 Mб
Скачать

Другие позиционные системы счисления

Неудобство использования двоичной системы счисления заключается в громоздкости записи чисел. это неудобство не имеет существенного значения для ЭВМ. однако, если возникает необходимость кодировать информацию «вручную», например, при составлении программы на машинном языке, то предпочтительнее оказывается пользоваться 8-й или 16-ой системой счисления.

В 8-ой системе счисления базисными числамиявляются 0,1,….,7. Запись каждого числа в этой системе счисления основывается на его разложении по степеням числа восемь с коэффициентами, являющимися базисными числами.

в 16-ой системе счисления базисными числами являются числа от нуля до 15-ти: q=16: 0,…,9,A,B,C,D,E,F.

Таблица 1 – Перевод чисел из одной системы счисления в другую.

Десятеричная система счисления

Двоичная система счисления

Шестнадцатеричная система счисления

Восьмеричная система счисления

0

0

0

0

1

1

1

1

2

10

2

2

3

011

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

8

10

9

1001

9

11

10

1010

A

12

11

1011

B

13

12

1100

C

14

13

1101

D

15

14

1110

E

16

15

1111

F

17

16

10000

10

20

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

  1. Перевод из Q в P. Задача перевода произвольного числаx, заданного в системе счисления с основаниемqв систему счисления с основаниемpсводится к вычислению полинома вида:

X=qn*Qn+qn-1*Qn-1+…+q1*Q1*q0*Q0+q-1*Q-1+…+q-m*Q-m

Пример1. Требуется перевести число x=371(8) в(10).

q0=1,q1=7,q2=3.Q=8.

Для перевода запишем число xв виде:

x=3*82+7*11+1*80=192+56+1=249(10).

Пример 2. Требуется перевести число x=af,4(16) в(10).

Q=16,q-1=4,q0=f=15,q1=a=10.

Для перевода запишем число xв виде:

x=10*161+15*160+4*16-1=10*16+15+4/16=160+15+0,25=175,25(10).

Пример 3. Требуется перевести число x=1011(2) в(10).

Q=2,q0=1,q1=1,q2=0,q3=1.

Для перевода запишем число xв виде:

x=1*23+0*22+1*21+1*20=8+2+11(10).

  1. Перевод из P в Q, при P=Qk, где k=1,2,….

Если P=Qk, гдеk=1,2,…., то производят поразрядную замену каждойP-ичной цифры равным ей разрядным числомQ-ичной системы.

Пример. Требуется перевести число x=273,54(8) в(2).

Здесь P=Qk, т.к.P=8,Q=2,k=3.

x=273,54(8)=10111011,101100(2)

  1. Перевод из Q в P, при P=Qk, где k=1,2,….

Двигаясь от запятой вправо и влево разбивают Q-ичную запись на группы изkсимволов. Если самая левая или правая группа окажется неполной, то дописывают незначащие группы нулями, дополняя доkсимволов. После этого группы заменяют соответствующейP-ичной цифрой.

Пример. Требуется перевести число x=010111011,101100(2) в(8).

Здесь P=Qk,k=3.

x=010111011,101100(2)= 273,54(8).

  1. Перевод из P в Q, при PQk.

В данном случае перевод дробной и целой части выполняется отдельно.

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

Число умножают пока дробная часть не станет равной нулю. Это точный перевод. Иначе перевод осуществляется до заданной степени точности (обычно до повторения).

Перевод целой части: (Алгоритм последовательного деления)

Число в P-ичной системе счисления последовательно делят на основаниеQ-ичной системы счисления, пока не останется остаток, меньший или равный (q-1). Число вQ-ичной системе счисления записывается как последовательность остатков от деления. записанных в обратном порядке, причем первое число будет частным от последнего деления.

Пример1. Требуется перевести число x=191,6875(10) в(2).

P=10,Q=2,P≠Qk.

а) перевод целой части.

191: 2=95 (остаток1)

95:2=47 (остаток 1)

47:2=23 (остаток 1)

23:2=11 (остаток 1)

11:2=5 (остаток 1)

5:2=2 (остаток 1)

2:2=1(остаток0)

Итак, целая часть числа 191,6875(10) в двоичной системе счисления = 10111111.

б) перевод дробной части

0,6875*2=1,3750

0,375*2=0,750

0,75*2=1,50

0,5*2=1,0

Итак, дробная часть числа 191,6875(10) в двоичной системе счисления = 1011.

Следовательно, число 191,6875(10) в двоичной системе счисления представляется как 10111111,1011.

Пример2. Требуется перевести число x=3060(10) в(16).

P=10,Q=16,P≠Qk.

3060:16=191 (остаток 4)

191:16=11(остаток15)

Отсюда q0=4,q1=15=f,q2=11=b, т.е.x=3060(10)=bf4(16)