- •1. Кодирование чисел
- •1.1. Двоичная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •1.2. Шеснадцатеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •Преобразование двоичных чисел
- •1.3. Восьмеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •Преобразование двоичных чисел
- •2. Кодирование текста
Преобразование двоичных чисел
Одна из особенностей 16-й системы состоит в том, что ее очень легко согласовать с двоичной системой счисления. Причина состоит в том, что основание счета «16» является четвертой степенью «2»:
161 = 24
Следовательно, один разряд 16-й системы всегда будет соответствовать четырем разрядам 2-й системы счисления. Взаимное влияние разрядов друг на друга в данном случае отсутствует. Преобразование осуществляется отдельно для каждой цифры. Заметим, что в данном случае неважно, есть ли дробная часть у числа или ее нет, поскольку каждый разряд шестнадцатеричного числа всегда преобразовывается в независимую четверку двоичных цифр, запятая, при этом, сохранит свое положение. Например, преобразуем к двоичной системе число B2,C16 .
Для этого каждый разряд числа преобразуем к десятичной форме (см. табл. 1.2) и пересчитаем их отдельно друг от друга к двоичной системе и запишем полученные разряды в той же очередности, что и исходные разряды, сохраняя место положение запятой (см. рис. 1.5).
|
B2,C |
|
||||||||||||||||||||
B |
2 |
C |
||||||||||||||||||||
(11) |
(2) |
(12) |
||||||||||||||||||||
↓ |
↓ |
↓ |
||||||||||||||||||||
11 |
|
2 |
|
|
|
|
|
|
2 |
|
2 |
|
|
12 |
|
2 |
|
|
|
|
||
10 |
|
5 |
|
2 |
|
|
|
|
2 |
|
1 |
|
|
10 |
|
6 |
|
2 |
|
|
||
1 |
|
4 |
|
2 |
|
2 |
|
|
0 |
|
|
|
|
0 |
|
6 |
|
3 |
|
2 |
||
|
|
1 |
|
2 |
|
1 |
|
|
|
|
|
|
|
|
|
0 |
|
2 |
|
1 |
||
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
||
1011 |
0010* |
1100 |
||||||||||||||||||||
|
↓ |
|
||||||||||||||||||||
10110010,1100 |
Рис. 1.5. Пример преобразования 16-го числа в 2-ное
Заметим, что должно получиться всегда четыре разряда (см. выше). Если их получилось меньше четырех (*), то запишем недостающие разряды нулями в качестве старших. В итоге имеем: B2C16 → 10110010,11002 . Если появились нулевые разряды в начале целой части или в конце дробной, то их можно опустить, таким образом, получим: 10110010,112
Обратный пересчет осуществляется по аналогичным принципам. Двоичное число разделяется на группы по четыре разряда, таким образом, чтобы один из разделителей был всегда на месте запятой. При этом, если четверки не получаются, то дописываем недостающие: в целой части нули записываем в начало группы разрядов, а в дробной – в конец группы (см. рис. 1.6 «*»).
Каждая такая часть переводится как самостоятельное число в десятичную систему. Полученные значения и будут нашими искомыми разрядами числа. Как и предыдущих случаях, если полученные значения больше «9», то их заменяем на соответствующие буквы.
1010010,11 |
||
↓ |
||
101 | 0010, | 11 |
||
↓ |
||
101 → 0101* |
0010 |
11 → 1100* |
↓ |
↓ |
↓ |
1·22 + 0·21 + 1·20 = = 4 + 1 = 5 |
0·23 + 0·22 + 1·21 + 0·20 = = 2 |
1·23 + 1·22 + 0·21 + 0·20 = = 8 + 4 = 12 |
↓ |
↓ |
↓ |
5 |
2 |
12 → C |
↓ |
||
52,C |
Рис. 1.6. Пример перевода числа из 2-ной системы в 16-ную
В итоге имеем: 1010010,112 → 52,С16 . Как видим, преобразовывать 16-ную и 2-ную систему одну в другую довольно просто.