![](/user_photo/2706_HbeT2.jpg)
- •Омский государственный технический университет
- •1. Из истории развития систем счисления
- •Пальцевый счет
- •1.2. Древнеегипетская система счисления
- •Вавилонская система счисления
- •1.4. Системы счисления, основанные на позиционном принципе
- •1.5. Системы счисления Древней Греции
- •1.6. Римская система счисления
- •1.7. Древнеславянская система счисления
- •2. Позиционная система счисления
- •2.1. Представление произвольного числа в позиционной системе счисления
- •2.2. Двоичная система счисления
- •2.3. Восьмеричная система счисления
- •2.4. Шестнадцатеричная система счисления
- •2.5. Перевод чисел в систему с кратным основанием
- •2.6. Перевод правильной дроби
- •Задания для самостоятельной работы №1
- •1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
- •2. Перевести данное число в десятичную систему счисления.
- •Контрольная работа №1
- •3. Двоичная арифметика
- •3.1. Сложение двоичных чисел
- •3.2. Вычитание двоичных чисел
- •3.3. Умножение в двоичной системе счисления
- •3.4. Деление двоичных чисел
- •4. Формы представления чисел в эвм
- •4.1. Числа с фиксированной запятой
- •4.2. Числа с плавающей запятой
- •4.3. Сложение (вычитание) чисел с плавающей запятой
- •4.4. Умножение чисел с плавающей запятой
- •4.5. Прямой код
- •4.6. Обратный код
- •1 0111111111111111 – Обр. Код второго числа
- •4.7. Дополнительный код
- •4.8. Признак переполнения разрядной сетки
- •4.9. Правило перевода из дополнительного кода в десятичную систему
- •4.10. Модифицированные коды
- •5. Форматы чисел в эвм
- •Задания для самостоятельной работы №2
- •Контрольная работа №2.2
- •Контрольная работа №2.3
- •Контрольная работа №2.4
- •6. Кодирование алфавитно-цифровой информации
- •6.1. Параметры алфавитно-цифровой информации
- •6.3. Стандарты кодирования символов ansi, кои-8 и unicode
- •7. Двоично-десятичные коды
- •7.2. Коды с избытком
- •7.5. Действия над двоично-десятичными числами
- •7.6. Сложение двоично-десятичных чисел
- •7.7. Вычитание модулей двоично-десятичных чисел
- •7.8. Умножение модулей двоично-десятичных чисел
- •8. Код грея
- •8.1. Строение кода Грея
- •8.2. Использование кода Грея
- •8.3. Алгоритмы преобразования кода Грея
- •9. Погрешности вычислений
- •9.1. Источники погрешностей
- •9.2. Абсолютная и относительная погрешности
- •9.3. Десятичная запись приближенных чисел Значащая цифра числа. Верная значащая цифра
- •9.4. Распространение ошибок
- •9.5. Правила подсчета цифр
- •9.6. Общие рекомендации, позволяющие уменьшить погрешность вычислений
- •9.7. Ошибки в программах, связанные с особенностью выполнения арифметических операций
- •10. Представление графической информации
- •10.1. Текстовый режим
- •10.2. Графический режим
- •10.3. Растровое графическое изображение
- •10.4. Векторная графика
- •10.5. Форматы графических файлов
- •11. Представление звуковой информации
- •11.1. Цифро-аналоговое и аналого-цифровое преобразование звуковой информации
- •11.2. Компрессия звука
- •11.3. Формат Microsoft riff
- •11.6. Midi-форма звука
- •11.7. Аппаратные синтезаторы
- •11.8. Альтернативы звука в эвм
- •11.9. Звуковые платы
- •Задачи для самостоятельной работы
- •Приложение 3
- •Содержание
- •Литература
2.6. Перевод правильной дроби
Известно, что любое рациональное число можно представить в виде десятичной и обыкновенной дроби. Обыкновенная дробь, то есть дробь вида А/В может быть правильной и неправильной.
Дробь называется правильной, если А < В и неправильной, если А > В.
Если рациональное число представлено неправильной дробью, и при этом числитель дроби делится на знаменатель нацело, то данное рациональное число - число целое, во всех иных случаях возникает дробная часть. Дробная часть зачастую бывает очень длинным числом и даже бесконечным (бесконечная периодическая дробь, например 20/6), поэтому в случае с дробной частью у нас возникает не просто задача перевода одного представления в другое, а перевод с определённой точностью.
Аналитическая
запись правильной дроби имеет следующий
вид:
(2.8.)
Перевод правильной дроби, представленной в систему счисления с основанием S, в систему счисления с основанием q заключается в последовательном умножении этой дроби на основание q по правилам системы счисления с основанием , причем перемножают только дробные части. Дробь в системе счисления с основанием представляется в виде упорядоченной последовательности целых частей произведений в порядке их получения. (Иными словами, старший разряд является первой цифрой произведения). Количество циклов умножения определяется требуемой точностью результата и равно + 1, где – количество разрядов искомого числа.
Для многих чисел указанный процесс умножения потенциально никогда не кончается. Поэтому он продолжается до тех пор, пока не будет получено необходимое число цифр дробной части. При переводе числа с целью представления ее в «машинной» форме можно точно указать требуемое количество цифр.
Пример 2.15. Перевести в двоичную систему счисления десятичную дробь 0,7243.
Основание исходной системы счисления S = 10. Основание новой системы счисления q = 2.
Согласно приведенного правила, исходное число 0,7243 надо умножать на основание новой системы (2) по правилам десятичной системы счисления. Выполним серию умножений до получения, например, шести цифр в двоичном числе.
Искомые цифры дроби:
0,7243 * 2 = 1,4486 1 старшая цифра
0,4486 * 2 = 0,8972 0
0,8942 * 2 = 1,7944 1
0,7944 * 2 = 1,5888 1
0,5888 * 2 = 1,1776 1
0,1776 * 2 = 0,3552 0
0,3552 * 2 = 0,7104 0
Искомое представление числа 0,7243 в двоичной системе счисления 0,101110.
Обратите внимание, что для получения шести цифр дроби выполнено семь умножений. Это связано с необходимостью выполнить округление, чтобы представить дробь заданной длины более точно.
Из примера видно, что конечная дробь в одной системе счисления может стать бесконечной в другой. Это справедливо для всех случаев, когда одна система счисления не может быть получена возведением в целую степень основания другой.
Перевод неправильной дроби из одной системы счисления в другую осуществляется отдельно для целой и дробной части по правилам, изложенным выше.
Пример 2.16. Представить 5,401(10) в двоичном виде.
Решение. Целую часть мы получим по уже известным нам правилам, и она равна двоичному числу 101. А дробную часть разложим по степеням 2.
Шаг 1: 2-2 = 0,25; 0,401 - 0,25 = 0,151. - это остаток.
Шаг 2: Сейчас необходимо степенью двойки представить 0,151. Сделаем это: 2-3 = 0,125; 0,151 - 0,125 = 0,026
Значит, исходную дробную часть можно представить в виде 2-2+2-3 . То же самое можно записать таким двоичным числом: 0,011. В первом дробном разряде стоит ноль, это потому, что в нашем разложении степень 2-1 отсутствует.
Из первого и второго шагов ясно, что это представление не точное и может быть разложение желательно продолжить. Согласно правилу нам нужно столько знаков М чтобы 103 было меньше чем 2М. То есть 1000<2M. То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как 29 = 512 и только 210 = 1024. Продолжим процесс.
Шаг 3: Сейчас работаем с числом 0,026. Ближайшая к этому числу степень двойки 2-6 = 0,015625; 0,026 - 0,015625 = 0,010375 теперь наше более точное двоичное число имеет вид: 0,011001. После запятой уже шесть знаков, но этого пока недостаточно, поэтому выполняем ещё один шаг.
Шаг 4: Сейчас работаем с числом 0,010375. Ближайшая к этому числу степень двойки 27 = 0,0078125; 0,010375 - 0,0078125 = 0,0025625.
Шаг 5: Сейчас работаем с числом 0,0025625. Ближайшая к этому числу степень двойки 2-9 = 0,001953125; 0,0025625 - 0,001953125 = 0,000609375.
Последний получившийся остаток меньше чем 2-10 и если бы мы желали продолжать приближение к исходному числу, то нам бы понадобилось 2-11, но это уже превосходит требуемую точность, а, следовательно, расчёты можно прекратить и записать окончательное двоичное представление дробной части:
0,401 = 0,011001101.
Как видно, преобразование дробной части десятичного числа в двоичное представление сложнее, чем преобразование целой части.
Алгоритм преобразования:
Исходные данные алгоритма: Через А будем обозначать исходную правильную десятичную дробь, записанную в десятичной форме. Пусть эта дробь содержит N знаков.
Действие 1. Определим количество необходимых двоичных знаков М из неравенства 10N < 2M.
Действие 2. Цикл вычисления цифр двоичного представления (цифры после нуля). Номер цифры будем обозначать символом К.
Номер цифры = 1.
Если 2-К > А , то в запись двоичного числа добавляем ноль.
Иначе
– в запись двоичного числа добавляем 1
– А = А - 2-К
К = К + 1.
Если К > М
– то работа алгоритма завершена
– иначе переходим на пункт 2.
В заключение следует отметить, что перевод из одной системы счисления в другую произвольных чисел можно осуществлять по общим правилам, описанным в разделе “Двоичная система счисления”. Однако на практике переводы чисел из десятичной системы в рассмотренные системы счисления и обратно осуществляются через двоичную систему счисления.
Кроме того, следует помнить, что шестнадцатеричные и восьмеричные числа – это только способ представления больших двоичных чисел, которыми фактически оперирует процессор. При этом шестнадцатеричная система оказывается предпочтительнее, поскольку в современных ЭВМ процессоры манипулируют словами длиной 4, 8, 16, 32 или 64 бита, т.е. длиной слов, кратной 4. В восьмеричной же системе счисления предпочтительны слова, кратные 3 битам, например, слова длиной 12 бит.