Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическое занятие 1.doc
Скачиваний:
22
Добавлен:
09.02.2015
Размер:
107.52 Кб
Скачать
  1. Двоично-десятичное кодирование

Наряду с двоичными кодами, которыми оперирует ЭВМ, для ввода и вывода десятичных чисел (данных) используют специальное двоично-десятичное кодирование. При двоично-десятичном кодировании каждая десятичная цифра заменяется тетрадой (четверкой) двоичных цифр, а сами тетрады записываются последовательно в соответствии с по рядком следования десятичных цифр. При обратном преобразовании двоично-десятичного кода в десятичный исходный код разбивается на тетрады вправо и влево от запятой, которые затем заменяются десятичными цифрами.

Таким образом, при двоично-десятичном кодировании фактически не производится перевод числа в новую систему счисления, а мы имеем дело с двоично-кодированной десятичной системой счисления.

Например, десятичное число 15(10) = F(16) = 17(8) = 1111(2) = 00010101(2-10).

  1. Преобразование чисел

ЭВМ работают с двоичными кодами, пользователю удобнее иметь дело с десятичными или шестнадцатеричными. Поэтому возникает необходимость перевода числа из одной системы счисления в другую.

Преобразование числа X из системы счисления с основанием q в систему счисления с основанием р (преобразование Х(q) → Х(р)) осуществляется по правилу замещения или по правилу деления-умножения на основание системы счисления.

Правило замещения реализуется на основании формулы (1.1) и предусматривает выполнение арифметических операций с кодами чисел в новой системе счисления. Поэтому оно чаще всего используется для преобразования чисел из недесятичной системы счисления в десятичную.

Пример. Выполнить преобразование Х(2) → Х(10), если Х{2) =10101,011

Х(10) = 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 1 · 20 + 0 · 2-1 + 1 · 2-2 + 1 · 2-3 = 21,375

Правило деления-умножения предусматривает выполнение арифметических опе­раций с кодами чисел в исходной системе счисления с основанием q, поэтому его удоб­но применять для преобразования десятичных чисел в любые другие позиционные сис­темы счисления. Правила преобразования целых чисел и правильных дробей различны. Для преобразования целых чисел используется правило деления, а для преобразования правильных дробей — правило умножения. Для преобразования смешанных чисел ис­пользуются оба правила соответственно для целой и дробной частей числа.

Правило деления используется для преобразования целого числа, записанного в - нчной системе счисления, в р -ичную. В этом случае необходимо последовательно делить исходное q -ичное число и получаемые частные на новое основание р, представленное в q  -ичной системе счисления. Деление продолжают до тех пор, пока очередное частное не станет меньше р. После замены полученных остатков и последнего частного цифрами р -ичной системы счисления записывается код числа в новой системе счисления. При этом старшей цифрой является последнее частное, а следующие за ней цифры соответствуют остаткам, записанным в последовательности, обратной их получению.

Правило умножения используется для преобразования дробного числа, записанного в q -ичной системе счисления, в р -ичную. В этом случае необходимо последовательно умножать исходную дробь и дробные части получающихся произведений на основание р, представленное в исходной q -ичной системе счисления. Целые числа получаемых произведений, замененные цифрами р -ичной системы счисления, и дают последовательность цифр в новой р -ичной системе.

Умножение необходимо производить до получения в искомом р -ичном коде цифры того разряда, вес которого меньше веса младшего разряда исходной q -ичной дроби. При этом в общем случае получается код приближенно, и всегда с недостатком значения дроби. Поэтому в случае обратного преобразования (р -ичного кода дроби в q -ичный) результат может не совпадать с исходным значением q -ичной дроби.

Пример. Выполнить преобразование

Х(10) → Х(2), если Х{10) =37,45

Для получения частных и остатков по правилу деления для целой части числа удобно использовать формулу записи, известную под названием «деление в столбик», а для получения р -ичного кода дробной части числа по правилу умножения — форму записи, известную под названием «умножение столбиком». Применительно к рассматриваемому примеру имеем:

37

2

36

18

2

1

18

9

2

0

8

4

2

1

4

2

2

0

2

1

- последнее частное

0

целая часть Х(2) = 100101

0,

45

х 2

0

90

х 2

1

80

х 2

1

60

х 2

1

20

.

.

.

дробная часть Х(2) = 0,0111

Таким образом, в результате преобразования получаем 37,45(10) = 100101,0111... (2)

Как следует из примера, процесс перевода дробной части можно продолжить до бес-конечности. ЭВМ оперирует числами, представленными конечными наборами цифр. Поэтому дроби округляют в соответствии с правилами преобразования и весом младшего разряда исходной дроби.

Преобразование чисел из двоичной системы счисления в восьмеричную, шестнад-цатеричную и обратно осуществляется по упрощенным правилам с учетом того, что основания этих систем счисления кратны целой степени 2, т. е. 8= 23, а 16 = 24 . Это означает, что при преобразовании восьмеричного кода числа в двоичный, необходимо каждую восьмеричную цифру заменить соответствующим трехзначным двоичным кодом (триадой).

При преобразовании шестнадцатеричного кода числа в двоичный необходимо каждую шестнадцатеричную цифру заменить четырехзначным двоичным кодом (тетрадой).

При преобразовании двоичного кода в восьмеричный или шестнадцатеричный двоичный код делится соответственно на триады или тетрады влево и вправо от запятой (точки), разделяющей целую и дробные части числа. Затем триады (тетрады) заменяются восьмеричными (шестнадцатеричными) цифрами:

Например: 1CD,4(16) = 000111001101,0100(2) = 0715,2(8).

Если при разбиении двоичного кода в крайних триадах (тетрадах) недостает цифр до нужного количества, они дополняются нулями. Соответственно, «лишние» нули слева и справа, не вошедшие в триады (тетрады) отбрасываются.