- •1. Кодирование чисел
- •1.1. Двоичная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •1.2. Шеснадцатеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •Преобразование двоичных чисел
- •1.3. Восьмеричная система счисления
- •Преобразование целых чисел
- •Преобразование дробных чисел
- •Преобразование двоичных чисел
- •2. Кодирование текста
Преобразование дробных чисел
Дробные числа преобразуются иными методами, а именно умножением. Умножению подвергаем только дробную часть до тех пор пока она не исчезнет. Продемонстрируем преобразование числа 0,12510 и 0,110 в двоичную систему счисления:
× |
0,125 |
× |
0,1 |
2 |
2 |
||
× |
0,250 |
× |
0,2 |
2 |
2 |
||
× |
0,500 |
× |
0 ,4 |
2 |
2 |
||
|
1,000 |
× |
0,8 |
|
|
2 |
|
|
|
× |
1,6* |
|
|
2 |
|
|
|
× |
1,2 |
|
|
2 |
|
|
|
|
0,4 |
Рис. 1.2. Перевод дробного числа из десятичной системы в двоичную
(* - умножению подлежит только дробная часть числа, поэтому - 0,6·2=1,2)
Разрядами двоичного числа будут целые части чисел, образующихся при умножении. Первый ноль в исходном числе это ноль в целой части, а остальные - разряды двоичного числа. Поэтому имеем 0,12510 → 0,0012. Во втором случае наблюдается зацикливание расчетов, таким образом, расчеты дают двоичное число с бесконечной дробной частью (иррациональное число) которое записывается следующим образом 0,000110011(0011)… (см. рис. 1.2).
Поскольку в памяти компьютера все числа могут быть только рациональными, то приходится полученное число округлять до заданной точности (необходимое число разрядов в ячейках памяти компьютера), что привносит ошибку. Таким образом, не все дробные числа, вводимые в десятичной системе счисления, представляются абсолютно точно в памяти компьютера.
Обратный перевод осуществляется похожим образом, что и для целых чисел, но степени в выражении будут отрицательные:
Произведем сложение разрядов с учетом их степеней:
|
Произведем сложение разрядов с учетом их степеней:
Результат лишь примерно равен исходному числу (см. прим. выше) |
Если число содержит целую и дробную части одновременно, то оно преобразуется двумя действиями: каждая из частей преобразуются отдельно друг от друга, а затем соединяются. Например, число 23,4310 будет преобразовано следующим образом:
Преобразуем целую часть 2310 в двоичную систему:
Получаем: 2310 = 101112 |
Преобразуем дробную часть 0,4310 в двоичную систему:
Получаем 0,4310 = 0,011011100…2 |
Для получения итогового числа соединяем обе части вместе и получаем:
23,4310 = 10111,011011100…2
Обратный пересчет осуществляем, как было показано выше, через развернутую форму числа:
4 |
3 |
2 |
1 |
0 |
-1 |
-2 |
-3 |
-4 |
-5 |
-6 |
-7 |
-8 |
-9 |
1 |
0 |
1 |
1 |
1, |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
Произведем сложение разрядов с учетом их степеней (для простоты будем рассматривать только значимые разряды, отличные от нуля):