- •1. Кодирование чисел
- •1.1. Двоичная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •1.2. Шеснадцатеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •Преобразование двоичных чисел
- •1.3. Восьмеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •Преобразование двоичных чисел
- •2. Кодирование текста
1. Кодирование чисел
1.1. Двоичная система счисления
Двоичная система счисления подразумевает, что все числа состоят из двух возможных цифр: «1» и «0». В целом принцип счета остается прежним, для позиционных систем счисления. Дробное число в десятичной системе является дробями «десяти», а в двоичной соответственно дробями «двойки». Пример счета приведен ниже в таблице 1.1:
Таблица 1.1
Примеры двоичных чисел
целые числа |
дробные числа |
||
двоичная система |
десятичная система |
двоичная система |
десятичная система |
0 |
0 |
0,001 |
0,125 |
1 |
1 |
0,010 |
0,250 |
10 |
2 |
0,011 |
0,370 |
11 |
3 |
0,100 |
0,500 |
100 |
4 |
0,101 |
0,625 |
101 |
5 |
0,110 |
0,750 |
110 |
6 |
0,111 |
0,875 |
111 |
7 |
1,000 |
1,000 |
1000 |
8 |
|
|
Существует правила пересчета двоичных чисел в десятичные и наоборот. Целые и дробные числа преобразуются по-разному.
Преобразование целых чисел
Рассмотрим преобразование целого числа 100 из десятичной системы в двоичную. Для пояснения - каждое число будет иметь индекс, поясняющий, в какой системе находится число. Целые числа переводятся последовательным делением на основание счета, в данном случае на «2». Число делится нацело с вычислением остатка (см. рис. 1). Полученное частное повторно делится на «2» и так далее до тех пор, пока в последнее частное не станет меньше основания счета, т.е. «2» (рис. 1.1).
100 |
|
2 |
|
|
|
|
|
|
|
|
|
|
100 |
|
50 |
|
2 |
|
|
|
|
|
|
|
|
0 |
|
50 |
|
25 |
|
2 |
|
|
|
|
|
|
|
|
0 |
|
24 |
|
12 |
|
2 |
|
|
|
|
|
|
|
|
1 |
|
12 |
|
6 |
|
2 |
|
|
|
|
|
|
|
|
0 |
|
6 |
|
3 |
|
2 |
|
|
|
|
|
|
|
|
0 |
|
2 |
|
1 |
|
|
|
|
|
|
|
|
|
|
1 |
|
|
Рис 1.1. Перевод целого числа из десятичной системы в двоичную
Полученные остатки и есть наши искомые разряды. Записываем «1», а затем наши остатки, начиная с последнего получившегося. В итоге имеем: 10010 → 11001002
Обратный расчет двоичного числа в десятичное осуществляется исходя из развернутой формы числа. Проведем обратное преобразование полученного выше числа в десятичную форму. Пронумеруем разряды числа, начиная с младшего:
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
Далее умножим разряд на основание счета в степени его порядкового номера и просуммируем результат:
1·26 + 1·25 + 0·24 + 0·23 + 1·22 + 0·21 + 0·20 = 64 + 32 + 4 = 10010
Как мы можем увидеть, пересчет целых чисел между двоичной и десятичной систем происходит абсолютно точно. Поэтому применение целых чисел в программировании предпочтительно.