Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Преобразование дробных чиселСтр 1 из 5Следующая ⇒
КОДИРОВАНИЕ ЧИСЕЛ ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ Двоичная система счисления подразумевает, что все числа состоят из двух возможных цифр: «1» и «0». В целом принцип счета остается прежним, для позиционных систем счисления. Дробное число в десятичной системе является дробями «десяти», а в двоичной соответственно дробями «двойки». Пример счета приведен ниже в таблице 1.1: Таблица 1.1 Примеры двоичных чисел
Существует правила пересчета двоичных чисел в десятичные и наоборот. Целые и дробные числа преобразуются по-разному.
Преобразование целых чисел Рассмотрим преобразование целого числа 100 из десятичной системы в двоичную. Для пояснения - каждое число будет иметь индекс, поясняющий, в какой системе находится число. Целые числа переводятся последовательным делением на основание счета, в данном случае на «2». Число делится нацело с вычислением остатка (см. рис. 1). Полученное частное повторно делится на «2» и так далее до тех пор, пока в последнее частное не станет меньше основания счета, т.е. «2» (рис. 1.1).
Рис 1.1. Перевод целого числа из десятичной системы в двоичную
Полученные остатки и есть наши искомые разряды. Записываем «1», а затем наши остатки, начиная с последнего получившегося. В итоге имеем: 10010 → 11001002 Обратный расчет двоичного числа в десятичное осуществляется исходя из развернутой формы числа. Проведем обратное преобразование полученного выше числа в десятичную форму. Пронумеруем разряды числа, начиная с младшего:
Далее умножим разряд на основание счета в степени его порядкового номера и просуммируем результат: 1· 26 + 1· 25 + 0· 24 + 0· 23 + 1· 22 + 0· 21 + 0· 20 = 64 + 32 + 4 = 10010 Как мы можем увидеть, пересчет целых чисел между двоичной и десятичной систем происходит абсолютно точно. Поэтому применение целых чисел в программировании предпочтительно.
Преобразование дробных чисел Дробные числа преобразуются иными методами, а именно умножением. Умножению подвергаем только дробную часть до тех пор пока она не исчезнет. Продемонстрируем преобразование числа 0, 12510 и 0, 110 в двоичную систему счисления:
Рис. 1.2. Перевод дробного числа из десятичной системы в двоичную (* - умножению подлежит только дробная часть числа, поэтому - 0, 6· 2=1, 2)
Разрядами двоичного числа будут целые части чисел, образующихся при умножении. Первый ноль в исходном числе это ноль в целой части, а остальные - разряды двоичного числа. Поэтому имеем 0, 12510 → 0, 0012. Во втором случае наблюдается зацикливание расчетов, таким образом, расчеты дают двоичное число с бесконечной дробной частью (иррациональное число) которое записывается следующим образом 0, 000110011(0011)… (см. рис. 1.2). Поскольку в памяти компьютера все числа могут быть только рациональными, то приходится полученное число округлять до заданной точности (необходимое число разрядов в ячейках памяти компьютера), что привносит ошибку. Таким образом, не все дробные числа, вводимые в десятичной системе счисления, представляются абсолютно точно в памяти компьютера. Обратный перевод осуществляется похожим образом, что и для целых чисел, но степени в выражении будут отрицательные:
Если число содержит целую и дробную части одновременно, то оно преобразуется двумя действиями: каждая из частей преобразуются отдельно друг от друга, а затем соединяются. Например, число 23, 4310 будет преобразовано следующим образом:
Для получения итогового числа соединяем обе части вместе и получаем: 23, 4310 = 10111, 011011100…2
Обратный пересчет осуществляем, как было показано выше, через развернутую форму числа:
Произведем сложение разрядов с учетом их степеней (для простоты будем рассматривать только значимые разряды, отличные от нуля):
|