<<
>>

Перевод дробных чисел

Программист должен уметь выполнять перевод в различные системы счисления не только целых чисел, но и дробных чисел. Особенно важно это при программи- ровании алгоритмов, использующих операции с плавающей точкой.
Без владения в полной мере знаниями о том, как представляются дробные числа в памяти компь- ютера и в регистрах сопроцессора, вам вряд ли удастся овладеть программирова- нием на ассемблере в полной мере. Давайте разберемся с наиболее часто использу- емыми на практике способами перевода дробных чисел. Для этого формулу (4.1) преобразуем к следующему виду: А, = а ■ р" 1 + а ∙ р" ⅝ ... ..Ла^-р1 + aђ∙pa + а χ ∙p ' + a2∙p + ... + а m∙p~m . (4.3) Рассмотрим операции перевода чисел на примерах. Пример 1 Пусть требуется перевести в десятичное представление следующее дробное чис- ло, заданное в двоичной системе счисления: 110100,010010112.
Для перевода используем формулу (4.3): 110100,010010112 =1 ∙25 + l ∙24+0∙23 + l ∙ 22 + 0 ∙ 2’ + 0 ∙ 2° + 0 ∙ 2~1 + + 1 ∙ 2-2 + 0 ∙ 2-3 + 0 ∙ 2"4+ 1 ∙ 2-5 + 0 ∙ 2~e + 1 ∙ 2'7+ 1 ∙ 2Ά Для вас не составит труда вычислить целую часть десятичной дроби: 1,25 + 1,24 + 0 ∙ 23 + 1 ∙ 22 + 0 ∙ 2' + 0 ∙ 2°. Для вычисления остальной части выражения удобно использовать табл. 4.3.
Перевод чисел из одной системы счисления в другую 81 Таблица 4.3. Значения отрицательных степеней по основанию числа 2

Вы можете сами продолжить табл.

4.3 значениями отрицательных степеней по основанию числа 2 и в конце концов подсчитать результат перевода в десятичное представление значения , 110100,01001011., Пример 2 Пусть требуется перевести в десятичное представление следующую дробь, задан- ную в шестнадцатеричной системе счисления: Вновь используем формулу (4.3): ldf2,аlе4,g= 1 ∙ 163+ 13 ∙ 162+ 15 ∙ 21 + 2 ∙ 16" + 10 ∙ 16-' + 1 ∙ 162 + + 14 ∙ 16 3 + 4 ∙ 16 4. Для удобства вычисления дробной части приведем значения отрицательных степеней числа 16 (табл. 4.4).
Таблица 4.4. Значения отрицательных степеней по основанию числа 16

Перевод из двоичной системы счисления в шестнадцатеричную и обратно вы- полняется, как обычно, на основе тетрад и трудности вызывать не должен. Пример 3 Рассмотрим теперь проблему представления десятичных дробей в двоичной и шест- надцатеричной системах счисления: Общий алгоритм перевода десятичной дроби в другую систему счисления можно представить следующей последовательностьюшагов, 1. Выделить целую часть десятичной дроби и выполнить ее перевод в выбранную систему счисления по алгоритмам, рассмотренным ранее. 2. Выделить дробную часть и умножить ее на основание выбранной новой систе- мы счисления. 3. Bv полученной после умножения дробной части десятичной дроби выделить целую часть и принять ее в качестве значения первого после запятой разряда числа в новой системе счисления. 4. Если дробная часть значения, полученного после умножения, равна нулю, то прекратить процесс перевода. Процесс перевода можно прекратить также в слу- чае, если достигнута необходимая точность вычисления. В противном случае вернуться к шагу 3.

Рассмотрим пример. Пусть требуется перевести в двоичную систему счисле- ния десятичную дробь Ю8,40610. Сначала переведем целую часть десятичной дроби Ю8,40610 в двоичную систе- му счисления (рис. 4.5).
Рис. 4.5. Перевод целой части десятичного числа 108,406 в двоичную систему счисления

Затем переведем дробную часть десятичного числа Ю8,40610(рис. 4.6) по при- веденному ранее алгоритму. Результат перевода следующий: 108,40610= 1101100,011001111. При переводе дробного числа из десятичной системы счисления в шестнадца- теричную целесообразно предварительно перевести число в двоичную! систему, а затем двоичное представление разбить на тетрады отдельно до разделительной Перевод чисел из одной системы счисления в другую 83 Рис. 4.6. Перевод дробной части числа 108,406 в двоичную систему счисления запятой и после запятой. Разбиение на тетрады двоичных разрядов целой части производят от запятой в сторону старших разрядов. Неполную старшую тетраду дополняют слева нулями. Разряды дробной части, напротив, разбивают на тетрады от запятой вправо к младшим разрядам. Если последняя тетрада неполная, то ее до- полняют нулями справа. На рис. 4.7 показан процесс перевода того же дробного деся- тичного числа (Ю8,40610) в эквивалентное шестнадцатеричное представление.

Рис. 4.7. Пример перевода десятичного числа в шестнадцатеричную систему счисления

<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Перевод дробных чисел:

  1. Трактовка чисел нумерологического эгрегора
  2. Характеристики чисел года соляра
  3. 1.1.6. Перевод и перемещение
  4. Перевод
  5. ПЕРЕВОД
  6. § 5. Перевод долга
  7. Звук "МН" - это вибрации чисел 5-6 (Юпитер-Венера).
  8. Звук "ЮЯ"- это вибрация чисел 5-6 (Юпитер-Венера).
  9. Звук "ИЯ" - это вибрации чисел 1-6 (Солнце-Венера).
  10. Звук "ОЙ" - это вибрации чисел 7-2 (Сатурн- Луна).