Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы автоматизации производства.doc
Скачиваний:
374
Добавлен:
30.05.2020
Размер:
13.24 Mб
Скачать

2. Правила перевода одной системы счисления в другую

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

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

Например, переведем десятичное число 1987 в двоичную систему счисления:

Число 1987 десятичной системы в двоичной системе составит 11111000011, т. е. (1987)10 = (11111000011)а.

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

Например, переведем восьмеричное число 123 в десятичное: (123)8 = 1·82 + 2·81 + 3·80 = 64 + 16 + 3 = 83, т. е. (123)8 = (83)10.

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

Например, переведем десятичную дробь 0,65625 в двоичную систему счисления:

Так как дробная часть 5-го произведения состоит из одних нулей, то дальнейшее умножение является излишним. Это означает, что заданная десятичная дробь переводится в двоичную систему без погрешности, т. е. (0,65625)10 = (0,10101)2.

Перевод из восьмеричной и шестнадцатеричной систем исчисления в двоичную и обратно не сложен. Это объясняется тем, что их основания (d = 8 и d = 16) соответствуют целым степеням двух (28 = 8 и 24 = 16).

Для перевода восьмеричных или шестнадцатеричных. чисел в двоичную систему счисления достаточно каждую их цифру заменить соответственно трех или четырехразрядным двоичным числом.

Например, переведем восьмеричное число (571)8 и шестнадцатеричное число (179)16 в двоичную систему счисления.

В обоих случаях получаем одинаковый результат, т. е. (571)8 = (179) = (101111001).

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

Например, запишем число (0010 0001 1000, 0110 0001 0110)2-10 в десятичной системе счисления, т. е.

(0010 0001 1000, ,0110 0001 0110)2-10 = (218,625)10.

3. Формы представления чисел в эвм. Машинные коды

Существуют две основные формы представления чисел в вычислительной машине: естественная (с фиксированной запятой) и нормальная (с плавающей запятой). В зависимости от этого ЭВМ также подразделяются на две группы: вычислительные машины, работающие с числами с фиксированной запятой, и машины, работающие с числами с плавающей запятой.

Естественная форма записи. Число представляют в виде последовательности двоичных цифр, разделенных запятой на целую и дробную части. Запятая фиксируется перед старшим цифровым разрядом. Это обеспечивает гарантию того, что в процессе умножения произведение никогда не может получится больше единицы. Каждую двоичную цифру записывают в строго определенном разряде. Специальный разряд отводят для представления знака числа. Если это число положительное, то в знаковом разряде записывается, нуль, если отрицательное число – единица.

В современных ЭВМ (типа СМ) запятую фиксируют справа от самого младшего разряда и таким образом все числа представляют целыми.

В разрядной сетке ЭВМ, работающих с числами с фиксированной запятой, для представления числа помимо знакового разряда выделяют n двоичных разрядов. «Вес» каждого разряда изменяется от минимального значения (2n) до максимального (–21). Следовательно, числа могут быть представлены от минимального отрицательного числа (Аmin)2 = 1,11 ... 1 до максимального положительного (Аmax)2 = 0,11 ... 1. Для представления чисел с фиксированной запятой, которые не укладываются в диапазоне от Аmin до Ашах, используют масштабные коэффициенты. С их помощью исходные, промежуточные и конечные результаты умножения на масштабные коэффициенты должны находиться в заданном диапазоне.

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

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

A = а × dp,

где а – цифровая часть числа (мантисса); р – целое положительное или отрицательное число, называемое порядком; d – основание системы счисления.

Число 123,45 в десятичной системе может быть записано так 123,45 = 0,12345 × 103 = 0,012345 × 104 и т. д. Числа 0,12345 и 0,012345 – это мантиссы; 10 – основание десятичной системы счисления; числа 3 и 4 – порядки.

Для ввода числа в нормальной форме в ЭВМ оно записывается следующим образом: +0,12345 + 3 или +0,012345 + 4. Отрицательный знак у порядка возникает при представлении в нормальной форме дробей. Число 0,00321 = 0,321 × 10-2 или +321–2.

Числа, представленные в такой форме, могут быть нормализованы, т. е. приведены к виду, когда первая цифра после запятой отлична от нуля. Нормализация представления чисел позволяет сохранить в разрядной сетке большое количество значащих цифр, что повышает точность вычислений.

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

Прямой код основан на представлении чисел в виде их абсолютного значения с кодом соответствующего знака: плюса или минуса. Число А в прямом коде обозначается [А]пр. Прямой код двоичного числа совпадает по изображению с записью самого числа, но в разряде знака ставится 1, если число отрицательное. Например, запишем двоичные числа +0,1101 и –0,1101 в прямом коде. Если А = +0,1101, то [А]пр = 0,1101; если А = = –0,1101, то [А]пр = 1,1101.

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

Число А в обратном коде обозначается [А]оСр. Если двоичное число А является положительным (А>0), то обратный код этого числа совпадает с прямым кодом, т. е. [А]обр = [А]пр = А. Если А < 0, то обратный код получают следующим образом. В знаковом разряде записывается единица, а в разрядах мантиссы единицы заменяют на нули, а нули на единицы. Например, если А = –1,1010101, то [А]обр = 1,0101010.

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

Число А в дополнительном коде обозначается [А]доп. Дополнительный код положительного числа совпадает с его прямым кодом, т. е. при А>0 [А]доп = [А]пр = А. Для отрицательного числа дополнительный код получается по следующему правилу. В знаковом разряде записывается единица, а в разряде мантиссы нули заменяются единицами, а единицы – нулями (аналогично тому, как это выполняется в обратном коде), после чего к младшему разряду прибавляется единица.

Таким образом, чтобы получить число в дополнительном коде, его преобразуют в обратный код, а затем к младшему разряду полученного числа прибавляют единицу. Например, представим числа А1 = 0,1111 и А2=–0,1111 в прямом, обратном и дополнительном кодах:

[A1]пр = [A1]обр = [A1]доп

[A2]пр = 1,1111;

[A1]обр = 1,0000;

[A1]доп = 1,0001.

Дополнительный код, как и обратный, используется для замены операции вычитания сложением.

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

Соседние файлы в предмете Электротехника