NexxDigital - компьютеры и операционные системы

Перевод чисел из шестнадцатеричной в восьмеричную систему

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

1. Необходимо это число представить в двоичной системе.

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

Например :

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

Перевод в десятичную систему числа С , как целого так и дробного, записанного в q-ичной системе счисления осуществляется с помощью разложения числа по базису по формуле 1 (см. разд. 1.2).

Однако для преобразования правильных дробейможно использовать следующий способ:

1. Цифру младшего разряда дроби 0,А q разделить на основание q . К полученному частному прибавить цифру следующего (более старшего) разряда числа 0,А q .

2. Полученную сумму вновь следует разделить на q и вновь прибавить цифру следующего разряда числа.

3. Так поступать, пока не прибавится цифра старшего разряда дроби.

4. Полученную сумму еще раз разделить на q и к результату приписать запятую и ноль целых.

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

a). 0,1101 2 б). 0,356 8
1/2 + 0 = 0,5 6/8+5 = 5,75
0,5/2 + 1 = 1,25 5,75/8 + 3 = 3,71875
1,25/2 + 1 = 1,625 3,71875/8 = 0,46484375
1,625/2 = 0,8125
Ответ:0,1101 2 = 0,8125 10 Ответ: 0,356 8 = 0,46484375 10

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

1. Умножить данное число на новое основание р .

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

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

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

5. Предельная абсолютная погрешность перевода числа D равняется q -(k +1) /2, где k- количество знаков после запятой.

Например: Переведем десятичную дробь 0,375 в двоичную, троичную и шестнадцатеричную систему счисления. Перевод выполнить с точностью до третьего знака.

Например: Переведём число 0,36 10 в двоичную, восьмеричную и шестнадцатеричную системы:

Для записи удобно использовать такую форму:

Перевод в Перевод в Перевод в

двоичную с/сч. восьмеричную с/сч. шестнадцатеричную

0, x 36 0, x 36 0, x 36
x 72 x 88 x 76
x 44 x 04 x 16
x 88 x 32 x 56
x 76 x 46 x 96
x 52 x 68 x 36

0,36 10 = 0,010111 2 с предельной абсолютной погрешностью (2 -7)/2=2 -8

0,36 10 = 0,270235 8 с предельной абсолютной погрешностью
(8 -7)/2=2 -22

0,36 10 = 0,5C28F5 16 с предельной абсолютной погрешностью
(16 -7)/2=2 -29

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

1.9 Продвижение цифр в позиционных системах счисления

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

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

Рассмотрим продвижение цифры в позиционной системе счисления.

Продвижением цифры называют замену её следующей по величине (путём прибавления единицы).

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

Снова дошли до цифры 9, поэтому происходит переход на более высший разряд, но в позиции 1-го разряда уже имеется цифра 1, поэтому происходит и продвижение цифры 1 первого разряда, т.е. 1+1=2 (два десятка). Так продвигаем цифры, пока в первом разряде не появится старшая цифра в системе счисления (в нашем примере это 9) теперь переход осуществляется на следующий разряд.

Рассмотрим теперь продвижение цифр в троичной системе счисления, т.е. q=3 (используются цифры 0, 1, 2) и старшая цифра 2.

0+1 1+1
2+1 10+1 11+1
12+1 20+1 21+1
22+1 100+1 101+1
102+1 110+1 111+1
и т.д.

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

Компьютеры используют двоичную систему потому, что для её реализации используются технические устройства с двумя устойчивыми состояниями (нет тока - 0; есть ток – 1 или не намагничен – 0; намагничен – 1 и т.п.). Так же применение двоичной системы счисления позволяет использовать аппарат булевой алгебры (см. раздел 2) для выполнения логических преобразований информации. Двоичная арифметика намного проще десятичной, но недостатком её является быстрый рост числа разрядов, необходимых для записи чисел.

Например: Продвинем цифры в двоичной системе счисления, где q=2 , (используются цифры 0, 1) старшая цифра 1:

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111 и т. д.

Как видно из примера, что уже третье число в ряду продвинулось на разряд выше, т.е. заняло место (если бы это была десятичная) “десятков”. Пятое число – место “сотен”, девятое число – место “тысяч” и т.д. В десятичной системе переход на другой разряд происходит значительно медленнее. Двоичная система удобна для компьютеров, а для человека неудобна из-за её громоздкости и непривычной записи.



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

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

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

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

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

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

Сложение

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

Таблица 1.4

Сложение в двоичной системе:

+

Таблица 1.5

Сложение в восьмеричной системе

+

Таблица 1.6

Сложение в шестнадцатеричной системе

+ A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A B C D E F
A A B C D E F
B B C D E F 1A
C C D E F 1A 1B
D D E F 1A 1B 1C
E E F 1A 1B 1C 1D
F F 1A 1B 1C 1D 1E

Например:


а) Сложим числа 1111 2 и 110 2:

в) Сложим числа F 16 и 6 16:

б) Сложим числа 17 8 и 6 8:


г) Сложим два числа: 17 8 и 17 16 .

Приведем число 17 16 к основанию 8 посредством двоичной системы

17 16 =10111 2 =27 8 . Выполним сложение в восьмеричной системе:

д) Сложим 2 числа. 10000111 2 + 89 10

1 способ: Переведем в десятичную запись число 10000111 2 .

10000111 2 = 1*2 7 + 1*2 2 + 1*2 1 + 1*2 0 =128 + 4 + 2 + 1 = 135 10

135 10 + 89 10 = 224 10

2 способ: Переведем число 89 10 в двоичную систему любым способом.

89 10 = 1011001 2

Сложим эти числа.

Для проверки переведем это число в десятичную запись.

11100000 2 = 1*2 7 + 1*2 6 +1*2 5 = 128+64+32 = 224 10


Вычитание

Найдем разность между числами:

а) 655 8 и 367 8 б) F5 16 и 6 16

Умножение

Таблица 1.7

Умножение в двоичной системе:

*

Таблица 1.8

Умножение в восьмеричной системе

*

Результат уже получен!

Системы счисления

Существуют позиционные и не позиционные системы счисления. Арабская система счисления, которым мы пользуемся в повседневной жизни, является позиционной, а римская − нет. В позиционных системах счисления позиция числа однозначно определяет величину числа. Рассмотрим это на примере числа 6372 в десятичном системе счисления. Пронумеруем это число справа налево начиная с нуля:

Тогда число 6372 можно представить в следующем виде:

6372=6000+300+70+2 =6·10 3 +3·10 2 +7·10 1 +2·10 0 .

Число 10 определяет систему счисления (в данном случае это 10). В качестве степеней взяты значения позиции данного числа.

Рассмотрим вещественное десятичное число 1287.923. Пронумеруем его начиная с нуля позиции числа от десятичной точки влево и вправо:

Тогда число 1287.923 можно представить в виде:

1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1·10 3 +2·10 2 +8·10 1 +7·10 0 +9·10 -1 +2·10 -2 +3·10 -3 .

В общем случае формулу можно представить в следующем виде:

Ц n ·s n +Ц n-1 ·s n-1 +...+Ц 1 ·s 1 +Ц 0 ·s 0 +Д -1 ·s -1 +Д -2 ·s -2 +...+Д -k ·s -k

где Ц n -целое число в позиции n , Д -k - дробное число в позиции (-k), s - система счисления.

Несколько слов о системах счисления.Число в десятичной системе счисления состоит из множества цифр {0,1,2,3,4,5,6,7,8,9}, в восьмеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7}, в двоичной системе счисления - из множества цифр {0,1}, в шестнадцатеричной системе счисления - из множества цифр {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}, где A,B,C,D,E,F соответствуют числам 10,11,12,13,14,15.В таблице Таб.1 представлены числа в разных системах счисления.

Таблица 1
Система счисления
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

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

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

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

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

Пример 1. Переводить число 1011101.001 из двоичной системы счисления (СС) в десятичную СС. Решение:

1 ·2 6 +0 ·2 5 +1 ·2 4 +1 ·2 3 +1 ·2 2 +0 ·2 1 +1 ·2 0 +0 ·2 -1 +0 ·2 -2 +1 ·2 -3 =64+16+8+4+1+1/8=93.125

Пример 2. Переводить число 1011101.001 из восьмеричной системы счисления (СС) в десятичную СС. Решение:

Пример 3 . Переводить число AB572.CDF из шестнадцатеричной системы счисления в десятичную СС. Решение:

Здесь A -заменен на 10, B - на 11, C - на 12, F - на 15.

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

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

Целую часть числа переводится из десятичной СС в другую систему счисления - последовательным делением целой части числа на основание системы счисления (для двоичной СС - на 2, для 8-ичной СС - на 8, для 16-ичной - на 16 и т.д.) до получения целого остатка, меньше, чем основание СС.

Пример 4 . Переведем число 159 из десятичной СС в двоичную СС:

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Как видно из Рис. 1, число 159 при делении на 2 дает частное 79 и остаток 1. Далее число 79 при делении на 2 дает частное 39 и остаток 1 и т.д. В результате построив число из остатков деления (справа налево) получим число в двоичной СС: 10011111 . Следовательно можно записать:

159 10 =10011111 2 .

Пример 5 . Переведем число 615 из десятичной СС в восьмеричную СС.

615 8
608 76 8
7 72 9 8
4 8 1
1

При приведении числа из десятичной СС в восьмеричную СС, нужно последовательно делить число на 8, пока не получится целый остаток меньшее, чем 8. В результате построив число из остатков деления (справа налево) получим число в восьмеричной СС: 1147 (см. Рис. 2). Следовательно можно записать:

615 10 =1147 8 .

Пример 6 . Переведем число 19673 из десятичной системы счисления в шестнадцатеричную СС.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Как видно из рисунка Рис.3, последовательным делением числа 19673 на 16 получили остатки 4, 12, 13, 9. В шестнадцатеричной системе счисления числе 12 соответствует С, числе 13 - D. Следовательно наше шестнадцатеричное число - это 4CD9.

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

Рассмотрим вышеизложенное на примерах.

Пример 7 . Переведем число 0.214 из десятичной системы счисления в двоичную СС.

0.214
x 2
0 0.428
x 2
0 0.856
x 2
1 0.712
x 2
1 0.424
x 2
0 0.848
x 2
1 0.696
x 2
1 0.392

Как видно из Рис.4, число 0.214 последовательно умножается на 2. Если в результате умножения получится число с целой частью, отличное от нуля, то целая часть записывается отдельно (слева от числа), а число записывается с нулевой целой частью. Если же при умножении получиться число с нулевой целой частью, то слева от нее записывается нуль. Процесс умножения продолжается до тех пор, пока в дробной части не получится чистый нуль или же не получим требуемое количество разрядов. Записывая жирные числа (Рис.4) сверху вниз получим требуемое число в двоичной системе счисления: 0.0011011 .

Следовательно можно записать:

0.214 10 =0.0011011 2 .

Пример 8 . Переведем число 0.125 из десятичной системы счисления в двоичную СС.

0.125
x 2
0 0.25
x 2
0 0.5
x 2
1 0.0

Для приведения числа 0.125 из десятичной СС в двоичную, данное число последовательно умножается на 2. В третьем этапе получилось 0. Следовательно, получился следующий результат:

0.125 10 =0.001 2 .

Пример 9 . Переведем число 0.214 из десятичной системы счисления в шестнадцатеричную СС.

0.214
x 16
3 0.424
x 16
6 0.784
x 16
12 0.544
x 16
8 0.704
x 16
11 0.264
x 16
4 0.224

Следуя примерам 4 и 5 получаем числа 3, 6, 12, 8, 11, 4. Но в шестнадцатеричной СС числам 12 и 11 соответствуют числа C и B. Следовательно имеем:

0.214 10 =0.36C8B4 16 .

Пример 10 . Переведем число 0.512 из десятичной системы счисления в восьмеричную СС.

0.512
x 8
4 0.096
x 8
0 0.768
x 8
6 0.144
x 8
1 0.152
x 8
1 0.216
x 8
1 0.728

Получили:

0.512 10 =0.406111 8 .

Пример 11 . Переведем число 159.125 из десятичной системы счисления в двоичную СС. Для этого переведем отдельно целую часть числа (Пример 4) и дробную часть числа (Пример 8). Далее объединяя эти результаты получим:

159.125 10 =10011111.001 2 .

Пример 12 . Переведем число 19673.214 из десятичной системы счисления в шестнадцатеричную СС. Для этого переведем отдельно целую часть числа (Пример 6) и дробную часть числа (Пример 9). Далее объединяя эти результаты получим.

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

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

а) Выполнить перевод числа 19 в двоичную систему счисления.

Таким образом, 19 = 10011 2

б) Перевести 181 10 ->”8” систему счисления

Результат. 181 10 ->265 8

в) Перевести 622 10 - "16" систему счисления

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

а) Перевести 10101101.1012 в десятичную систему счисления

10101101.101 2 = 1 2 7 + 0 2 6 + 1 2 5 + 0 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 + 1 2 -1 + 0 2 -2 + 1 2 -3 = 173.625 10

б) Перевести 703.048 в в десятичную систему счисления

703.048 = 7 82+ 0 81+ 3 80+ 0 8-1+ 4 8-2 = 451,062510

в) Перевести B2E.416 в в десятичную систему счисления

B2E.4 16 = 11 16 2 + 2 16 1 + 14 16 0 + 4 16 -1 = 2862,25 10

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

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

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

Арифметические операции

Сложение

Выполняется точно также как и в десятичной системе счисления

Вычитание

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

Умножение

Операция умножения выполняется точно также как и в десятичной системе счисления

Прямой код

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

0.011 число положительное

1.011 число отрицательное

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

Обратный код

Применяется для замены операции вычитания сложением

Для положительных чисел: изображение правильной двоичной дроби одинаково в обратном и прямом коде

Для записи отрицательной правильной двоичной дроби в обратном коде необходимо заменить нули единицами и наоборот, а слева от запятой вместо –0 поставить 1

То есть –0,0101=1,1010

Необходимо учитывать:

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

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

Если в знаковом разряде числа а обратном коде стоит 1, то для перехода к обычной записи надо в дробной части единицы заменить нулями, а нули – единицами, а слева от запятой записать –0

Дополнительный код

Так же как и обратный применяется для замены вычитания сложением

При этом: изображение положительной правильной двоичной дроби одинаково в прямом, обратном и дополнительном кодах.

Для перевода отрицательной дроби: Необходимо нули заменить единицами, а 1 нулями. К младшему разряду прибавить единицу, затем слева от запятой поставить 1.

Необходимо помнить:

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

    При переполнении, когда слева от запятой в результате сложения появляются две цифры, левая крайняя цифра отбрасывается, а оставшаяся цифра слева от запятой определяет знак результата

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

    если в результате сложения слева от запятой получился 1, то число отрицательное, если 0, то положительное (соответственно переводить ничего не нужно)



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы