comp-science.narod.ru ==> Дидактические материалы по информатике ==> Системы счисления


 

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


(из сборника "Введение в информатику. Лабораторные работы.
/ Авт.-сост. А.П. Шестаков; Перм. ун-т. — Пермь, 1999. (Ч. I — 56 с.)
")

 

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

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

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

Запись произвольного числа x в P-ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена

x = anPn + an-1Pn-1 + ... + a1P1 + a0P0 + a-1P-1 + ... + a-mP-m

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

При переводе чисел из десятичной системы счисления в систему с основанием P > 1 обычно используют следующий алгоритм:

1) если переводится целая часть числа, то она делится на P, после чего запоминается остаток от деления. Полученное частное вновь делится на P, остаток запоминается. Процедура продолжается до тех пор, пока частное не станет равным нулю. Остатки от деления на P выписываются в порядке, обратном их получению;

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

 

Примеры решения задач

1. Перевести данное число из десятичной системы счисления в двоичную:
а) 464(10); б) 380,1875(10); в) 115,94(10) (получить пять знаков после запятой в двоичном представлении).

Решение.

     464 | 0       380 | 0    |1875            115 | 1      |94
     232 | 0       190 | 0   0|375              57 | 1     1|88
     116 | 0        95 | 1   0|75               28 | 0     1|76
      58 | 0        47 | 1   1|5                14 | 0     1|52
а)    29 | 1   б)   23 | 1   1|0        в)       7 | 1     1|04
      14 | 0        11 | 1                       3 | 1     0|08
       7 | 1         5 | 1                       1 | 1     0|16
       3 | 1         2 | 0
       1 | 1         1 | 1

а) 464(10) = 111010000(2); б) 380,1875(10) = 101111100,0011(2); в) 115,94(10) » 1110011,11110(2) (в настоящем случае было получено шесть знаков после запятой, после чего результат был округлен).

Если необходимо перевести число из двоичной системы счисления в систему счисления, основанием которой является степень двойки, достаточно объединить цифры двоичного числа в группы по столько цифр, каков показатель степени, и использовать приведенный ниже алгоритм. Например, если перевод осуществляется в восьмеричную систему, то группы будут содержать три цифры (8 = 23). Итак, в целой части будем производить группировку справа налево, в дробной — слева направо. Если в последней группе недостает цифр, дописываем нули: в целой части — слева, в дробной — справа. Затем каждая группа заменяется соответствующей цифрой новой системы. Соответствия приведены в таблицах.

 P  2  00  01  10  11 
40123

 P  2  000  001  010  011  100  101  110  111 
801234567

 P  2  0000  0001  0010  0011  0100  0101  0110  0111  1000  1001  1010  1011  1100  1101  1110  1111 
160123456789ABCDEF

Переведем из двоичной системы в восьмеричную число 1111010101,11(2).

001 111 010 101,110(2) = 1725,6(8).

Переведем из двоичной системы в шестнадцатеричную число 1111010101,11(2).

0011 1101 0101,1100(2) = 3D5,C(16).
Соответствие между шестнадцатеричными цифрами и десятичными числами
160123456789ABCDEF
100123456789101112131415

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

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

Некоторые неотрицательные степени числа 2 (в десятичной системе счисления)
Показатель012345678910111213141516
Степень12481632641282565121024204840968192163843276865536
Некоторые отрицательные степени числа 2 (в десятичной системе счисления)
Показатель-1-2-3-4-5-6-7
Степень0,50,250,1250,06250,031250,0156250,0078125

а) 1000001(2).

1000001(2)=1× 26+0× 25+0× 24+0× 23+0× 22+ 0× 21+1× 20 = 64+1=65(10).

Замечание. Очевидно, что если в каком-либо разряде стоит нуль, то соответствующее слагаемое можно опускать.

б) 1000011111,0101(2).

1000011111,0101(2)=1×29 + 1×24 + 1×23 + 1×22 + 1×21 + 1×20 + 1×2-2 + 1×2-4 = 512 + 16 + 8 + 4 + 2 + 1 + 0,25 + 0,0625 = 543,3125(10).
Некоторые неотрицательные степени числа 8 (в десятичной системе счисления)
Показатель01234
Степень18645124096
Некоторые отрицательные степени числа 8 (в десятичной системе счисления)
Показатель-1-2
Степень0,1250,015625

в) 1216,04(8).

1216,04(8)=1×83+2×82+1×81+6×80+4× 8-2 = 512+128+8+6+0,0625 = 654,0625(10).
Некоторые неотрицательные степени числа 16 (в десятичной системе счисления)
Показатель01234
Степень116256409665536
Некоторые отрицательные степени числа 16 (в десятичной системе счисления)
Показатель-1-2
Степень0,06250,00390625

г) 29A,5(16).

29A,5(16) = 2×162+9×161+10×160+5×16-1 = 512+144+10+0,3125 = 656,3125(10).

Для выполнения арифметических операций в системе счисления с основанием P необходимо иметь соответствующие таблицы сложения и умножения. Для P = 2, 8 и 16 таблицы представлены ниже.

  +    0    1  
001
1110
    
  ´    0    1  
000
101
 +  0  1  2  3  4  5  6  7 
001234567
1123456710
22345671011
334567101112
4456710111213
55671011121314
667101112131415
7710111213141516
    
  ´   0  1  2  3  4  5  6  7 
000000000
101234567
2024610121416
30361114172225
404101420243034
505121724313643
606142230364452
707162534435261

 +  0 123456789ABCDEF
00123456789ABCDEF
1123456789ABCDEF10
223456789ABCDEF1011
33456789ABCDEF101112
4456789ABCDEF10111213
556789ABCDEF1011121314
66789ABCDEF101112131415
7789ABCDEF10111213141516
889ABCDEF1011121314151617
99ABCDEF101112131415161718
AABCDEF10111213141516171819
BBCDEF101112131415161718191A
CCDEF101112131415161718191A1B
DDEF101112131415161718191A1B1C
EEF101112131415161718191A1B1C1D
  F    F   10  11  12  13  14  15  16  17  18  19  1A  1B  1C  1D  1E 
    
  ´  0123456789ABCDEF
00000000000000000
10123456789ABCDEF
202468ACE10121416181A1C1E
30369CF1215181B1E2124272A2D
4048C1014181C2024282C3034383C
505AF14191E23282D32373C41464B
606C12181E242A30363C42484E545A
707E151C232A31383F464D545B6269
8081018202830384048505860687078
909121B242D363F48515A636C757E87
A0A141E28323C46505A646E78828C96
B0B16212C37424D58636E79848F9AA5
C0C1824303C4854606C7884909CA8B4
D0D1A2734414E5B6875828F9CA9B6C3
E0E1C2A38465462707E8C9AA8B6C4D2
  F    0    F   1E  2D  3C  4B  5A  69  78  87  96  A5  B4  C3  D2  E1 

3. Сложить числа:
а) 10000000100(2) + 111000010(2) = 10111000110(2).
б) 223,2(8) + 427,54(8) = 652,74(8).
в) 3B3,6(16) + 38B,4(16) = 73E,A(16).

    10000000100           223,2            3B3,6
   +  111000010         + 427,54          +38B,4
   ------------          -------           -----
    10111000110           652,74           73E,A

 

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

 

а) 10000000100(2)=1×210+1× 22 = 1024+4=1028(10)

111000010(2)=1×28+ 1×27+ 1×26+ 1×21 =  256+128+64+2 = 450(10)

10111000110(2)=1×210+ 1×28+ 1×27+ 1×26+ 1×22+ 1×21 =  1024+256+128+64+4+2 = 1478(10)

1028(10)+450(10) = 1478(10)

Результаты совпадают, следовательно, вычисления в двоичной системе счисления выполнены верно!

 

б) 223,2(8)=2×82+ 2×81+ 3×80+ 2×8-1 =  128+16+3+0,25 = 147,25(10)

427,54(8)= 4×82+ 2×81+ 7×80+ 5×8-1+ 4×8-2 =  256+16+7+0,625+0,0625 = 279,6875(10)

652,74(8)= 6×82+ 5×81+ 2×80+ 7×8-1+ 4×8-2 =  384+40+2+0,875+0,0625 = 426,9375(10)

147,25(10)+279,6875(10) = 426,9375(10)

Результаты совпадают, следовательно, вычисления в восьмеричной системе счисления выполнены верно!

 

в) 3B3,6(16)= 3×162+ 11×161+ 3×160+ 6×16-1 =  768+176+3+0,375 = 947,375(10)

38B,4(16)= 3×162+ 8×161+ 11×160+ 4×16-1 =  768+128+11+0,25 = 907,25(10)

73E,A(16)= 7×82+ 3×81+ 14×80+ 10×8-1 =  1792+48+14+0,625 = 1854,625(10)

947,375(10)+907,25(10) = 1854,625(10)

Результаты совпадают, следовательно, вычисления в шестнадцатеричной системе счисления выполнены верно!

 

4. Выполнить вычитание:
а) 1100000011,011(2) - 101010111,1(2) = 110101011,111(2).
б) 1510,2(8) - 1230,54(8) = 257,44(8).
в) 27D,D8(16) - 191,2(16) = EC,B8(16).

     1100000011,011          1510,2           27D,D8
    - 101010111,1           -1230,54         -191,2
     --------------          -------          ------
      110101011,111           257,44           EC,B8

5. Выполнить умножение:
а) 100111(2) ´   1000111(2) = 101011010001(2).
б) 1170,64(8) ´   46,3(8) = 57334,134(8).
в) 61,A(16) ´   40,D(16) = 18B7,52(16).

                 100111               1170,64                 61,A
               *1000111              *   46,3                *40,D
          -------------        --------------           ----------
                 100111               355 234                4F 52
          +     100111          +    7324 70            +  1868
               100111               47432 0             ----------
           100111               -------------              18B7,52
          -------------             57334,134 
           101011010001

6. Выполнить деление:
а) 100110010011000(2) : 101011(2)=111001000(2);
б) 46230(8) : 53(8)=710(8);
в) 4C98(16) : 2B(16)=1C8(16).

Пример деления целых чисел в двоичной, восьмеричной, шестнадцатеричной системах счисления

Калькулятор для работы в системах счисления с основаниями 2-36

История систем счисления

Представление числовой информации в памяти ЭВМ

Задачи по позиционным системам счисления

Контрольные вопросы и задания

  1. Дать определение системы счисления. Назвать и охарактеризовать свойства системы счисления.
  2. Какие символы используются для записи чисел в двоичной системе счисления, восьмеричной, шестнадцатеричной?
  3. Чему равны веса разрядов слева от точки, разделяющей целую и дробную часть, в двоичной системе счисления (восьмеричной, шестнадцатеричной)?
  4. Чему равны веса разрядов справа от точки, разделяющей целую и дробную часть, в двоичной системе счисления (восьмеричной, шестнадцатеричной)?
  5. Преобразуйте следующие десятичные числа в двоичные (восьмеричные, шестнадцатеричные): 0, 1, 18, 25, 128.
  6. Дешифруйте следующие двоичные числа, преобразовав их в десятичные: 0010, 1011, 11101, 0111, 0101.
  7. Дешифруйте следующие восьмеричные числа, преобразовав их в десятичные: 777, 375, 111, 1015.
  8. Дешифруйте следующие шестнадцатеричные числа, преобразовав их в десятичные: 15, A6, 1F5, 63.

 


[Заглавная страница] [Олимпиады по программированию] [Подготовка к олимпиадам] [Дидактические материалы по информатике]
[Дидактические материалы по математике] [Методическая копилка] [Ресурсы Интернет] [Об авторе]

 


Рейтинг ресурсов УралWeb

 

© А.П. Шестаков, 1999-2009
Сайт создан в системе uCoz