Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Позиционные системы счисления.



 

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

В вычислительных машинах применяются позиционные системы счисления. В позиционной системе счисления каждое число представляется последовательностью цифр, причем позиции каждой цифры xi присвоен определенный вес bi, где b – основание системы. Представление целого числа в виде степенного ряда описывается формулой:

Любое число в позиционной системе счисления представляется в виде разрядов. Крайняя слева цифра называется цифрой старшего разряда, крайняя справа – цифрой младшего разряда.

Смешанное число в позиционной системе счисления представляется степенным рядом:

,

где xk–любое число из алфавита системы (набор символов) с основанием b; m и n–число разрядов соответственно для целой и дробной части числа.

В современных компьютерах используются позиционные системы счисления с основаниями 2, 8, 10 и 16, которые соответственно называются двоичная, восьмеричная, десятичная и шестнадцатеричная системы счисления. Представление чисел в этих системах показано в табл.1.

Таблица 1.

Десятичные числа D10 Двоичные числа D2 Восьмеричные числа D8 Шестнадцатеричные числа D16
А
B
C
D
E
F

 

Для представления чисел в различных системах счисления необходимо вычислять степени двойки, восьмерки и шестнадцати (табл.2).

Таблица 2.

Степени двойки Степени восьмерки Степени шестнадцати
20=1 80=1 160=1
21=2 81=8 161=16
22=4 82=64 162=256
23=8 83=512 163=4096
24=16 84=4096 164=65536
25=32 85=32768  
26=64    
27=128    
28=256    
29=512    
210=1024    

 

Задача.

Представить число 1997 в позиционной системе счисления с основанием 10 (десятичной системе)

1997 = 1х103 + 9× 102 +9× 101 +7× 100.

Представить число 1997 в позиционной системе счисления с основанием 2 (двоичной системе)

1997 = 1× 210 +1× 29 +1× 28 +1× 27 +1× 26 +0× 25 +0× 24 +1× 23 +1× 22 +0× 21 +1× 20 = 11111001101.

Представить число 1997 в позиционной системе счисления с основанием 8 (восьмеричной системе)

1997 = 3× 83 +7× 82 +1× 81 +5× 80 = 3715.

Представить число 1997 в позиционной системе счисления с основанием 16 (шестнадцатеричной системе)

1997 = 7× 162 +12× 161 +13× 160 = 7CD.

 

Задача.

Представить в двоичной форме числа 48, 57, 511, 121. Разложим числа по степенному ряду двойки:

Решение:

48 = 32+16=1х25 + 1х24 + 0х23 + 0х22 + 0х21 + 0х20=1100002

57 = 32+ 16+8+1 =1х25 + 1х24+ 1х23 + 0х22 + 0х21 + 1х20 = 1110012

511=256+128+64+32+16+8+4+2+1 = 1х28+1х27 +1х26+1х25+1х24 +1х23+ +1х22 +1х21 +1х20 = 1111111112

121 = 64+32+16+8+4+2+1 = 1х26+1х2 +1х24+ 1х23 + 0х22 + 0х21 + 1х20 = =1111012

 

Задача.

Представить в восьмеричной форме числа 48, 57, 511, 121. Разложим числа по степенному ряду восьмерки:

48 = 6х81 + 0х20 = 608

57 = 56 + 1 = 7х81 + 1х20 = 718

511 = 448 + 56 + 7 = 7х81 + 7х81 + 7х80 = 7778

121 = 64 + 56 + 1 = 1х81 + 7х81 + 1х80 = 1718

 

Задача.

Представить в шестнадцатеричной форме числа 48, 57, 511, 121. Разложим числа по степенному ряду шестнадцати:

48 = 3х161 + 0х160 = 3016

57 = 48 + 9 = 3х161 + 9х160 = 39 16

511 = 256 + 240 + 15 = 1х162 + 15х161 + 15х160 = 1FF 16

121 = 112 + 9 = 7х161 + 9х160 = 19 16

 

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

Перевод чисел в десятичную систему счисления с помощью степенного ряда.

 

Задача.

А1 = 100100.10012, А2 = 234.58, А3 = АВС.Е16

А1 = 100100.10012 = 25 +22 +2-1 +2-4 = 36 + 36.562510;

Решение:

А2 = 234.58 = 2х82 + 3х81 + 4х80 + 5х8-1 = 156 + 5/8 = 156.62510

А3 = АВС.Е16 =10х162 + 11х161 + 12х160 + 14х16-1 = 2748 + 16/16 = 2748.87510

.

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

Задача.

Решение:

1234.7778 = 1 010 011 100.111 111 1112

12345678 = 1 010 011 100 101 110 1112

123456.0078 = 1 010 011 100 101 110.000 000 1112

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

Задача.

Решение:

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

 

11001112 = 001 100 1112 = 1478

11.10012 = 011.100 1002 = 3.448

110.01112 = 110.011 1002 = 6.348

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

Задача.

Решение:

1234.АВ7716 = 0001 0010 0011 0100.1010 1011 0111 01112;

СЕ456716 = 1100 1110 0100 0101 0110 01112

0.1234 АА16 = 0.0001 0010 0011 0100 1010 10102

11001112 = 0011.10012 = 6716;

11.10012 = 0011.10012=3.916

110.01110012 = 0110.0111 00102 = 6.3216

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

Задача.

Решение:

12345678=001 010 011 100 101 110 1112=0101 0011 1001 0111 01112= =5397716;

0.120348 = 0.001 010 000 011 1002 = 0.0010 1000 0011 10002 = 0.283816

120.348 = 001 010 000.011 1002 = 0101 0000.01112 = 50.716

1234.АВ7716 = 0001 0010 0011 0100.1010 1011 0111 01112 =

=001 001 000 110 100.101 010 110 111 011 1002 = 11064.5267348

СЕ456716 = 1100 1110 0100 0101 0110 01112 =

=110 011 100 100 010 101 100 1112 = 634425478

0.1234АА = 010 010 101 0102 = 0.044322528.

 

Перевод смешанного числа (целого и дробного) из десятичного счисления в другое счисление.

Метод деления.

Представление десятичного числа в других системах счисления может проводиться по схеме Горнера. Допустим, что у нас есть целое число D, представленное с помощью основания системы счисления b, т.е. Dn. Процесс представления выполняется в несколько этапов по следующим правилам:

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

4 Полученные остатки от деления, представленные символами нового счисления, записать в виде числа, начиная с последней целой части.

Следовательно, на 1 этапе Dn = , где - целая часть от деления, а0 – остаток. Этот остаток является первым младшим разрядом в новой системе счисления. На втором этапе деления получаем выражение вида

= и т.д.

Задача.

Представить по схеме Горнера десятичное число D10 = 147 в двоичном коде D2 = 10010011, в восьмеричном коде D8 =223, в шестнадцатеричном коде D16 = 93.

Проверить полученные результаты на инженерном калькуляторе.

 

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

 

Десятичное число D10 Двоичное число D2 Вес разряда
13: 2 = 6 с остатком 1
6: 2 = 3 с остатком 0
3: 2 = 1 с остатком 1
1: 2 = 0 с остатком 1

 

Десятичное число D10 Двоичное число D2 Вес разряда
37: 2 = 18 с остатком 1
18: 2 = 9 с остатком 0
9: 2 = 4 с остатком 1
4: 2 = 2 с остатком 0
2: 2 = 1 с остатком 0
1: 2 = 0 с остатком 1

 

Десятичное число D10 Восьмеричное число D8 Вес разряда
271: 8 = 33 с остатком 7
33: 8 = 4 с остатком 1
4: 8 = 0 с остатком 4

 

Десятичное число D10 D16 Вес разряда
27154: 16 = 1697 с остатком 2
1697: 16 = 106 с остатком 1
106: 16 = 6 с остатком 10 А
6: 16 = 0 с остатком 6

 

Десятичное число D10 D16 Вес разряда
7589: 16 = 474 с остатком 5
474: 16 = 29 с остатком 10 А
29: 16 = 1 с остатком 13 D
1: 16 = 0 с остатком 1

 

Задача.

Самостоятельно записать процедуру перевода D10 =156 в D8 и на основе анализа процедуры преобразования чисел из одной системы счисления (D10) в другую D2, D8, D16 разработать алгоритм этой процедуры.

 

Решение:

 

Десятичное число D10 Двоичное число D2 Вес разряда
156: 2 = 78 с остатком 0
78: 2 = 39 с остатком 0
39: 2 = 19 с остатком 1
19: 2 = 9 с остатком 1
9: 2 = 4 с остатком 1
4: 2 = 2 с остатком 0
2: 2 = 1 с остатком 0
1: 2 = 0 с остатком 1

 

Десятичное число D10 Восьмеричное число D8 Вес разряда
156: 8 = 19 с остатком 4
19: 8 = 2 с остатком 3
2: 8 = 0 остатком 2

 

Десятичное число D10 D16 Вес разряда
156: 16 = 9 с остатком 12 С
9: 16 = 0 с остатком 9

 

15610 = 100111008 = 2348 = 9С16

 

 

 

Алгоритм процедуры показан на рисунке:

 

 

 

Метод вычитания.

53 25 24 23 22 21 20

-32 ®25____ 1 1 0 1 0 1

21

-16 ®24____________­

5____________________________­

-4 ®22________________________________­

-1 ®20_________________________________________­

 

Метод умножения (Перевод дробного числа из десятичного счисления в другое счисление).

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

Пример.

Для преобразования десятичной дроби в двоичный эквивалент используем операцию последовательного умножения на 2. Если первое произведение окажется меньше 1, то запишем в старший разряд двоичной дроби 0. Если первое произведение ³ 1, то старшей цифрой двоичной дроби является 1. Аналогично определим вторую цифру двоичной дроби, причем на два умножается только дробная часть произведении, полученная на предыдущем шаге.

 

Задача.

0, 6384× 2=1, 2768 ®1 0, 4535× 2=0, 907 ®0

0, 2768× 2=0, 5536 ®0 0, 907× 2=1, 8140 ®1

0, 5536× 2=1, 1072 ®1 0, 8140× 2=1, 6280 ®1

0, 1072× 2=0, 2144 ®0 2, 6280× 2=1, 256 ®1

0, 2144× 2=0, 04288®0 1, 256× 2=0, 512 ®0

0, 0× 2=0, 0 ®0 0, 512× 2=1, 024 ®1

(0, 6384)10 = (0, 101000)2 0, 024× 2=0, 048 ®0

0, 048× 2=0, 096 ®0

0, 096× 2=0, 182 ®0

(0, 4535)10 = (0, 011101000)2

 

Форматы чисел.


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 928; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.043 с.)
Главная | Случайная страница | Обратная связь