Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Сдвиг и округление

Читайте также:
  1. Округление
  2. Определение сдвиговых характеристик пищевых масс
  3. Профилактика (2) Уменьшение сдвига и трения
  4. Регистры сдвига
  5. СДВИГ РЫНОЧНОГО РАВНОВЕСИЯ, ВЫЗВАННЫЙ ИЗМЕНЕНИЕМ СПРОСА
  6. Тема. Определение модуля упругости, модуля сдвига.
  7. Химический сдвиг

Преобразование двоичного формата в ASCII-формат

Преобразование ASCII-формата в двоичный формат

Двоично-десятичный формат (BCD)

В предыдущем примере деления в ASCII-формате было получено частное 00090204. В случае, если сжать это значение, сохраняя только правые цифры каждого байта, то получим 0924. Такой формат называет­ся двоично-десятичным (BCD — Binary Coded Decimal) (или упакован­ным). Он содержит только десятичные цифры от 0 до 9. Длина двоично-десятичного представления в два раза меньше ASCII-представления.

Заметим, однако, что десятичное число 0924 имеет основание 10 и. будучи преобразованным в основание 16 (то есть, в шест, представле­ние), даст шест.039С.

Можно выполнять сложение и вычитание чисел в двоично-деся-i ичном представлении (BCD-формате).

 

Для этих целей имеются две корректирующих команды:

+ DAA (Decimal Adjustment for Addition — десятичная коррекция для сложения)

•ф DAS (Decimal Adjustment for Subtraction — десятичная коррекция для вычитания)

Обработка полей также осуществляется по одному байту за одно выполнение.

Выполнение арифметических операций над числами в ASCII или BCD форматах удобно лишь для коротких полей. В большинстве случаев для арифметических операций используется преобразование в двоичный формат.

Практически проще преобразование из ASCII-фор мата непосред­ственно в двоичный формат, чем преобразование из ASCII- в BCD-фор­мат и, затем, в двоичный формат: Метод преобразования базируется на том, что ASCII-формат имеет основание 10, а компьютер выполняет арифметические операции только над числами с основанием 2. Процеду­ра преобразования заключается в следующем:

1. Начинают с самого правого байта числа в ASCII-формате и об­
рабатывают справа налево.

2.Удаляют тройки из левых шест.цифр каждого ASCII-байта.

3.Умножают ASCII-цифры на 1, 10, 100 (шест. 1, А, 64) и так далее
и складывают результаты.

Для того, чтобы напечатать или отобразить на экране арифметиче­ский результат, необходимо преобразовать его в ASCII-формат. Данная операция включает в себя процесс обратный предыдущему. Вместо ум­ножения используется деление двоичного числа на 10 (шест.ОА) пока ре­зультат не будет меньше 10. Остатки, которые лежат в границах от 0 до 9, образуют число в ASCII-формате.

 

Рассмотрим процесс округления числа до двух десятичных знаков после запятой. В случае, если число равно 12,345, то необходимо приба­вить 5 к отбрасываемому разряду и сдвинуть число вправо на один деся­тичный разряд:

Число: 12,345 Плюс 5: +5 - Округленное число: 12,350 = 12,35 В случае, если округляемое число равно 12,3455, то необходимо прибавить 50 и сдвинуть на два десятичных разряда. Для 12,34555 необ­ходимо прибавить 500 и сдвинуть на три десятичных разряда:

12,3455 12,34555 +50 +500 --- 12,3505 = 12,35 12,35055 = 12,35

К числу, имеющему шесть знаков после запятой, необходимо при­бавить 5000 и сдвинуть на четыре десятичных разряда и так далее. По­скольку данные представляются в компьютере в двоичном виде, то 12345 выглядит как шест.3039. Прибавляя 5 к 3039, получим ЗОЗЕ, что соответ­ствует числу 12350 в десятичном представлении. Пока все хорошо. Но вот сдвиг на одну двоичную цифру дает в результате шест. 181F, или 1675 — то есть, сдвиг на одну двоичную цифру просто делит число пополам. Но нам необходим такой сдвиг, который эквивалентен сдвигу вправо на одну десятичную цифру. Такой сдвиг можно осуществить делением на 10 (шест. А):

Шест.ЗОЗЕ : Шест.А = 4D3 или дес.1235

Преобразование шест.4ОЗ в ASCII-формат дает число 1235. Те­перь остается лишь вставить запятую в правильную позицию числа 12,35, и можно выдать на экран округленное и сдвинутое значение.

Таким образом можно округлять и сдвигать любые двоичные чис­ла.

Для трех знаков после запятой необходимо прибавить 5 и разде­лить на 10, для четырех знаков после запятой: прибавить 50 и разделить на 100. Возможно вы заметили модель: фактор округления (5, 50, 500 и так далее) всегда составляет половину фактора сдвига (10, 100, 1000 и так

далее).

Конечно, десятичная запятая в двоичном числе только подразуме­вается.

 


<== предыдущая страница | следующая страница ==>
Деление в ASCII-формате | Свойства операций над строками

Дата добавления: 2014-03-11; просмотров: 539; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.003 сек.