Главная arrow Информатика arrow Восьмеричная
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Восьмеричная и шестнадцатеричная Печать

Системы счисления, родственные двоичной

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

Система называется родственной двоичной, если ее основание является степенью числа 2. К таким системам относятся четверичная, восьмеричная и шестнадцатеричная.

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

В системе счисления с основанием 8 используются цифры: 0, 1, 2, 3, 4, 5, 6, 7.

Над числами в восьмеричной системе счисления можно выполнять арифметические действия.

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

Основание р=8. База – цифры от 0 до 7.

Посчитаем в восьмеричной системе и сравним ее с десятичной.

10-я

8-я

10-я

8-я

10-я

8-я

10-я

8-я

0

0

5

5

10

12

15

17

1

1

6

6

11

13

16

20

2

2

7

7

12

14

17

21

3

3

8

10

13

15

18

22

4

4

9

11

14

16

19

23

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

2-а

8-я

2-я

8-я

000

0

100

4

001

1

101

5

010

2

110

6

011

3

111

7

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

Пример: 567,238=101 110 111, 010 0112.

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

Пример: 1110100,1111012=001 110 100, 111 1012=164,758.

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

Пример: 98610=17328.

986

8

 

 

984

123

8

 

2

120

15

8

 

3

8

1

 

 

7

 

Для перевода правильной дроби из 10-системы счисления в 8-ю систему счисления нужно умножить исходную дробь и дробные части получающихся произведений на основание 8. Целые части получающихся произведений дают последовательность цифр, которая является представлением дроби в 8-ой системе счисления.

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

Пример:

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

Основание р=16. База — цифры от 0 до 9 и буквы A,B,C,D,E,F.

Посчитаем в этой системе

10-я

16-я

10-я

16-я

10-я

16-я

10-я

16-я

0

0

9

9

18

12

27

1B

1

1

10

A

19

13

28

1C

2

2

11

B

20

14

29

1D

3

3

12

C

21

15

30

1E

4

4

13

D

22

16

31

1F

5

5

14

E

23

17

32

20

6

6

15

F

24

18

33

21

7

7

16

10

25

19

34

22

8

8

17

11

26

1A

35

23

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

2-а

8-я

2-я

8-я

0000

0

1000

8

0001

1

1001

9

0010

2

1010

A

0011

3

1011

B

0100

4

1100

C

0101

5

1101

D

0110

6

1110

E

0111

7

1111

F

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

Пример: 56,А816=101 0110, 1010 10002.

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

Пример: 111 0100 1110 0111, 11012=74E7,D16.

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

Пример: 98610=3DA16.

Для перевода правильной дроби из 10-системы счисления в 16-ю систему счисления нужно умножить исходную дробь и дробные части получающихся произведений на основание 16. Целые части получающихся произведений дают последовательность цифр, которая является представлением дроби в 16-ой системе счисления.

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

Пример:

Арифметические действия с восьмеричными и шестнадцатеричными числами

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

7568+4528=14308

1А516+С3516=DDA16

7458+3638=13308

1F416+91116=B0516.

Хотя десятичная система счисления является наиболее широко применимой, это отнюдь не означает, что она самая лучшая. Широкое распространение во многом объясняется тем анатомическим обстоятельством, что у нас на руках и ногах по десять пальцев. Что же касается позиционного принципа и цифровых обозначений, то они с равным успехом могут быть приспособлены к системе счисления с любым основанием, независимо от того, равно ли оно 2, 10 или какому-нибудь другому целому положительному числу, кроме единицы. Например, подставив в полиномиальное представление 7x 2 + 6x 1 + 5x 0 + 4x –1 + 3x –2 вместо x значение 10, мы получим число 765,43 в нашей обычной десятичной системе. Но без малейшего ущерба для позиционного принципа обозначения целых чисел и дробей вместо x можно подставить и любое другое целое положительное число

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

Переход от десятичной системы к восьмеричной или двенадцатеричной действительно требует полного пересмотра таблиц сложения и умножения; это объясняет, почему предложения о переходе к этим системам счисления не получили широкого признания. Преимущества, которые сулит этот переход, сводятся на нет сопряженными с ним трудностями. Главные преимущества восьмеричной и двенадцатеричной систем счисления связаны с делимостью их оснований. Рассматривая только целые числа, меньшие половины основания (поскольку ни одно число не может быть делителем основания, если это число больше половины основания, но меньше его), нетрудно понять, что число 10 имеет два не делителя – числа 3 и 4, тогда как в восьмеричной системе единственный неделитель, меньший половины основания, есть число 3, а в двенадцатеричной системе единственный не делитель основания равен числу 5. Иначе говоря, преимущество числа 12 как основания системы счисления заключается в том, что оно имеет делителями числа 2, 3, 4 и 6, тогда как число 10 имеет делителями числа 2 и 5. Число 8 имеет делителями только числа 2 и 4, однако его основное преимущество перед другими в том, что непрерывное деление пополам неизменно приводит к “одноместному” дробному представлению в полиномиальной форме. Например, если 8 разделить на 210, то результат окажется в точности равным (0,004)8, тогда как если 12 разделить на 210, то получится (приближенно) (0,0183)12, а при делении на 210 числа 10 результат (также приближенный) будет равным (0,0097656)10.

В метрологии большое значение имеет факторизуемость (разложимость на множители) числа, вот почему 8 и 12 играют столь заметную роль в не метрических системах весов и мер. На американских фондовых биржах дроби обычно выражают в восьмых долях, а время делится на 12 и существенно использует деление единиц на 60 частей. Особая роль числа 60 в наших измерениях времени и углов связана с тем, что около четырех тысяч лет назад древние вавилоняне осознали, что число 60 имеет много делителей, и выбрали его не только за основу своих весов и мер, но и своей системы счисления. Позиционный принцип вошел в обиход в связи с шестидесятеричной, а не десятичной системой. Но основание 60 обладает одним серьезным недостатком: оно слишком велико для того, чтобы его можно было использовать в современной цифровой полиномиальной форме, т.к. для этого потребовалось бы 60 различных символов, которые обозначали бы первые шестьдесят неотрицательных целых чисел. Кроме того, таблицы сложения и умножения включали бы числа от 1 до 59, что потребовало бы чрезмерно большой нагрузки на память. Этим же недостатком обладает и любое другое основание большее 12, поэтому двенадцатеричная система является наибольшим практически возможным основанием. Сама двенадцатеричная система требует введения двух новых цифр – для обозначения чисел 10 и 11. Для этой цели были предложены буквы t и e. Преимущество двоичной системы в том, что для нее необходимо всего лишь две цифры, но она располагается на другом конце шкалы относительно шестидесятеричной системы, для большинства практических целей основание ее слишком мало и поэтому число знаков при записи чисел в двоичной системе оказывается слишком большим. (См. предыдущий раздел.) Числа 8, 10 и 12 очень близки к оптимальной величине основания системы счисления, и вычисления в восьмеричной, десятичной и двенадцатеричной системах выполняются сравнительно легко.

Аргументы в пользу двенадцатеричной системы счисления не следует путать с аргументами в защиту двенадцатеричной монетарной и метрологической систем. Уже вавилоняне прекрасно понимали желательность согласованности системы счисления и метрологической системы. Однако продолжительное использование десятичной системы вместе с двенадцатеричными и шестидесятеричными единицами измерения затушевало проблему их несогласованности. Более того, возникла тенденция преувеличивать те трудности, которые могла бы породить любая попытка их унифицировать. Внутренняя согласованность, по–видимому, играет более важную роль, чем любой выбор единого основания систем, будь то 8, 10 или 12. Во времена Великой французской революции, на заседаниях Революционной комиссии по весам и мерам, высказывались мнения о введения двенадцатеричных систем мер и весов, но окончательное решение склонилось в пользу унификации мер и весов на основе десятичной системы счисления. Результатом такого решения стала метрическая система, получившая ныне почти всеобщее признание.

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

Следует иметь в виду, что трудности перехода от одной системы счисления к другой не имеют никакого отношения к преимуществам или недостаткам выполнения арифметических операций целиком в рамках одной системы, будь то восьмеричная, десятичная или двенадцатеричная система. Десятичная система не может не признать небольших преимуществ двух других систем: восьмеричная система имеет меньшие по объему таблицы сложения и умножения и особенно хорошо приспособлена к делению на 2, а двенадцатеричная удобнее для выполнения операции деления и представления простых дробей. Достаточны ли эти преимущества для того, чтобы настаивать на придании универсального характера той или иной системе счисления, – вопрос достаточно спорный, однако основанное в 1944 Двенадцатеричное общество Америки стало центром, объединяющим активную деятельность тех, кто хотел бы, чтобы число 12 играло столь же важную роль, какую во многих цивилизациях на протяжении прошлых полдюжины тысячелетий играло число 10.