Главная страница
Навигация по странице:

  • Непозиционная система счисления

  • Позиционные системы счисления Систему счисления, в которой значение цифры определяется её местоположением (позици- ей) в изображении числа, называют позиционной

  • Перевод чисел из одной системы счисления в другую

  • Перевод правильных дробей

  • Двоичная, восьмеричная и шестнадцатеричная системы счисления

  • Двоично-десятичная система счисления

  • Представление числовой информации в ЭВМ

  • Рисунок 7 — Графическое изображение двоичного сигнала

  • Рисунок 8 — Разрядная сетка для формы с фиксированной запятой

  • Прямой, обратный и дополнительный коды Целые числа могут представляться в компьютере без знака или со знаком. Целые числа без знака

  • Целые числа со знаком: прямой, обратный и дополнительный коды

  • Выполнение арифметических операций над целыми числами

  • Сложение дополнительных кодов

  • Смещённый код и код Грея

  • Представление вещественных чисел в ЭВМ

  • Рисунок 9 — Формат представления вещественных чисел

  • Выполнение арифметических действий над нормализованными числами

  • Погрешности представления числовой информации в ЭВМ

  • Информатика — курс лекций. Курс лекций для студентов по направлениям 230100. 62 Информатика и вычислительная техника


    Скачать 2.08 Mb.
    НазваниеКурс лекций для студентов по направлениям 230100. 62 Информатика и вычислительная техника
    АнкорИнформатика — курс лекций.pdf
    Дата04.02.2018
    Размер2.08 Mb.
    Формат файлаpdf
    Имя файлаИнформатика — курс лекций.pdf
    ТипКурс лекций
    #15187
    страница5 из 16
    1   2   3   4   5   6   7   8   9   ...   16
    Тема 3. Представление числовой информации в ЭВМ
    Системы счисления
    Система счисления
    — совокупность приёмов и правил наименования и обозначения чисел, позволяющих установить взаимно однозначное соответствие между любым числом и его представ- лением в виде конечного числа символов.
    В любой системе счисления выбирается алфавит, представляющий собой совокупность неко- торых символов (слов или знаков), с помощью которого в результате каких-либо операций можно представить любое количество. Изображение любого количества называется числом, а символы ал- фавита — цифрами (от лат. cifra). Символы алфавита должны быть разными и значение каждого из них должно быть известно.
    В современном мире наиболее распространенной является десятичная система счисления, происхождение которой связано с пальцевым счетом. Она возникла в Индии и в XIII веке была пере- несена в Европу арабами. Поэтому десятичную систему счисления стали называть арабской, а ис- пользуемые для записи чисел цифры, которыми мы теперь пользуемся, — 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — арабскими.
    С давних времен для подсчётов и вычислений применялись различные системы счисления.
    Например, на Древнем Востоке довольно широко была распространена двенадцатеричная система.
    Многие предметы (ножи, вилки, тарелки и т.д.) и сейчас считают дюжинами. Число месяцев в году — двенадцать. Эта система счисления сохранилась в английской системе мер (например,
    ) и в денежной системе ( ). В Древнем Вавилоне существовала весьма сложная шестидесятеричная система. Она, как и двенадцатеричная система, в какой-то сте- пени сохранилась и до наших дней (например, в системе измерения времени: ,
    , аналогично в системе измерения углов: , ).
    Первые цифры (знаки для обозначения чисел) появились у египтян и вавилонян. У ряда наро- дов (древние греки, сирийцы, финикияне) цифрами служили буквы алфавита. Аналогичная система до XVI века применялась и в России. В Средние века в Европе пользовались системой римских цифр, которые и сейчас часто применяют для обозначения глав, частей, разделов в различного рода доку- ментах, книгах, для обозначения месяцев и т.д.
    Все системы счисления можно разделить на позиционные и непозиционные.
    Непозиционная система счисления
    — система, в которой символы, обозначающие то или иное количество, не меняют своего значения в зависимости от местоположения (позиции) в изобра- жении числа.
    Запись числа в непозиционной системе счисления может быть представлена выражени- ем:







    N
    i
    i
    N
    D
    D
    D
    D
    D
    A
    1 2
    1
    , где
    — запись числа в системе счисления ;
    — символы системы.

    47
    Непозиционной системой счисления является самая простая система с одним символом (па- лочкой). Для изображения какого-либо числа в этой системе надо записать количество палочек, рав- ное данному числу. Эта система неэффективна, так как форма записи очень громоздка.
    К непозиционной системе счисления относится и римская, символы алфавита которой и обо- значаемое ими количество представлены в таблице 1.
    Таблица 1
    Римские цифры
    I
    V
    X
    L
    C
    D
    M
    Значение (обозначаемое количество)
    1 5
    10 50 100 500 1000
    Запись чисел в этой системе счисления осуществляется по следующим правилам:
    1)
    если цифра слева меньше, чем цифра справа, то левая цифра вычитается из правой;
    2)
    если цифра справа меньше или равна цифре слева, то эти цифры складываются.
    В общем случае непозиционные системы счисления характеризуются сложными способами записи чисел и правилами выполнения арифметических операций. В настоящее время все наиболее распространённые системы счисления относятся к разряду позиционных.
    Позиционные системы счисления
    Систему счисления, в которой значение цифры определяется её местоположением (позици- ей) в изображении числа, называют
    позиционной
    Упорядоченный набор символов (цифр) {
    }, используемый для представления лю- бых чисел в заданной позиционной системе счисления, называют её алфавитом, число символов
    (цифр) алфавита — её основанием, а саму систему счисления называют -ичной.
    Основание позиционной системы счисления — количество различных цифр, используемых для изображения чисел в данной системе счисления.
    Самой привычной для нас является десятичная система счисления. Её алфавит —
    { }, а основание , т.е. в этой системе для записи любых чисел используется только десять разных символов (цифр). Эти цифры введены для обозначения первых десяти после- довательных чисел, а все последующие числа, начиная с 10 и т.д., обозначаются уже без использова- ния новых цифр. Десятичная система счисления основана на том, что десять единиц каждого разряда объединяются в одну единицу соседнего старшего разряда, поэтому каждый разряд имеет вес, рав- ный степени 10. Следовательно, значение одной и той же цифры определяется её местоположением в изображении числа, характеризуемым степенью числа 10.
    Таким образом, любое число можно представить в виде полинома путём разложения его по степеням числа 10:
    , последовательность из коэффициентов которого представляет собой десятичную запись числа
    :

    48
    Точка, отделяющая целую часть числа от дробной, служит для фиксации конкретных значений каждой позиции в этой последовательности цифр и является началом отсчёта.
    В общем случае для задания -ичной системы счисления необходимо определить основание и алфавит, состоящий из различных символов (цифр)
    , .
    За основание системы можно принять любое натуральное число — два, три, четыре и т.д.
    Обычно в качестве алфавита берутся последовательные целые числа от 0 до ( ) включительно. В тех случаях, когда общепринятых (арабских) цифр не хватает для обозначения всех символов алфави- та системы счисления с основанием , используют буквенное обозначение цифр a, b, c, d, e, f.
    Таким образом, возможно бесчисленное множество позиционных систем: двоичная, троич- ная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием означает сокра- щённую запись выражения:
    , где
    — цифры системы счисления; и — число целых и дробных разрядов, соответственно,
    — запись числа в -ичной системе счисления.
    Изображением числа в -ичной системе счисления является последовательность цифр
    С уменьшением основания системы счисления уменьшается число используемых цифр, но возрастает количество разрядов.
    Все известные позиционные системы счисления являются аддитивно-мультипликативными.
    Арифметические действия над числами в любой позиционной системе счисления производятся по тем же правилам, что и в десятичной системе, так как все они основываются на правилах выполнения действий над соответствующими полиномами. При этом нужно только пользоваться теми таблицами сложения и умножения, которые имеют место при данном основании системы счисления.
    Отметим, что во всех позиционных системах счисления с любым основанием умножения на числа вида
    , где — целое число, сводится просто к перенесению запятой у множимого на разрядов вправо или влево (в зависимости от знака ), так же как и в десятичной системе.
    Системы счисления используются для построения на их основе различных кодов в системах передачи, хранения и преобразования информации.
    Код
    (от лат. codex) — система условных знаков (символов) для представления различной ин- формации.
    Любому дискретному сообщению или знаку сообщения можно приписать какой-либо поряд- ковый номер. Измерение аналоговой величины, выражающееся в сравнении её с образцовыми ме- рами, также приводит к числовому представлению информации. Передача или хранение сообщений при этом сводится к передаче или хранению чисел. Числа можно выразить в какой-либо системе счисления. Таким образом будет получен один из кодов, основанный на данной системе счисления.
    Каждому разряду числа можно поставить в соответствие какой-либо параметр электрическо- го сигнала, например амплитуду.

    49
    Анализ систем счисления и построенных на их основе кодов с позиций применения в систе- мах передачи, хранения и преобразования информации показывает, что чем больше основание си- стемы счисления, тем меньшее число разрядов требуется для представления данного числа, а следо- вательно, и меньшее время для его передачи.
    Однако с ростом основания существенно повышаются требования к аппаратуре формирова- ния и распознавания элементарных сигналов, соответствующих различным символам. Логические элементы вычислительных устройств в этом случае должны иметь большее число устойчивых состо- яний.
    С учётом этих обстоятельств в качестве показателя эффективности системы может быть вы- брано число, равное произведению количества различных символов на количество разрядов для выражения любого числа. Тогда наиболее эффективной будет система, обеспечивающая минимум значения данного показателя.
    Обозначим произведение основания системы на длину разрядной сетки , выбранную для записи чисел в этой системе, через :
    (8)
    Если принять, что каждый разряд числа представлен не одним элементом с устойчивыми состояниями, a элементами, каждый из которых имеет одно устойчивое состояние, то показатель
    (8) определит условное количество оборудования, которое необходимо затратить на представление чисел в этой системе. В связи с этим показатель (8) называют показателем экономичности системы.
    Максимальное число, которое можно изобразить в системе с основанием :
    Отсюда можно найти требуемую длину разрядной сетки:
    (
    ).
    Тогда для любой системы счисления
    (
    ).
    Допустим, что величина является непрерывной величиной. При этом будем рассматривать величину как функцию от величины . Теперь если за единицу измерения оборудования принять условный элемент с одним устойчивым состоянием, то для сравнения двух систем счисления можно ввести относительный показатель экономичности:
    (
    )
    (
    )
    , позволяющий сравнить любую систему счисления с двоичной.
    Функция имеет минимум, определяемый из условия
    , что соответствует значению
    Следовательно, с точки зрения минимальных затрат условного оборудования наиболее эко- номичной является система счисления с основанием 3.

    50
    Незначительно уступают ей двоичная и четверичная. Системы с основанием 10 и более суще- ственно менее эффективны. Сравнивая эти системы с точки зрения удобства физической реализации соответствующих им логических элементов и простоты выполнения в них арифметических и логиче- ских действий, предпочтение в настоящее время отдаётся двоичной системе счисления. Действи- тельно, логические элементы, соответствующие этой системе, должны иметь всего два устойчивых состояния. Задача различения сигналов сводится в этом случае к задаче обнаружения (есть импульс или его нет), что значительно проще. Арифметические и логические действия также легче осуществ- ляются в двоичной системе.
    Перевод чисел из одной системы счисления в другую
    Рассмотрим задачу перевода числа из одной системы счисления в другую в общем случае.
    Пусть известна запись числа в системе счисления с основанием :
























    n
    m
    k
    k
    k
    m
    m
    n
    n
    n
    n
    p
    p
    a
    p
    a
    p
    a
    p
    a
    p
    a
    p
    a
    p
    a
    A
    1 1
    0 0
    1 1
    1 1
    ,
    (9)
    где
    — цифры -ичной системы (
    ).
    Требуется найти запись этого же числа в системе счисления с основанием :
























    n
    m
    k
    k
    k
    m
    m
    n
    n
    n
    n
    d
    d
    b
    d
    b
    d
    b
    d
    b
    d
    b
    d
    b
    d
    b
    A
    1 1
    0 0
    1 1
    1 1
    ,
    (10)
    где
    — искомые цифры -ичной системы (
    ). При этом можно ограничиться случаем положительных чисел, так как перевод любого числа сводится к переводу его модуля и приписыва- нию числу нужного знака.
    При переводе чисел из -ичной системы счисления в -ичную (
    ) нужно учитывать, средствами какой арифметики должен быть осуществлен перевод, т.е. в какой системе счисления ( - ичной или -ичной) должны быть выполнены все необходимые для перевода действия.
    Пусть перевод должен осуществляться средствами -ичной арифметики. В этом слу- чае перевод произвольного числа , заданного в системе счисления с основанием , в систему счис- ления с основанием выполняется по правилу замещения, предусматривающему вычисление поли- нома (9) в новой системе счисления. То есть для получения -ичного изображения выражения (9) необходимо все цифры и число заменить -ичными изображениями и выполнить арифметиче- ские операции в -ичной системе счисления.
    Правило замещения чаще всего используется для преобразования чисел из любой системы счисления в десятичную. Правило перевода для этого случая можно конкретизировать.
    Перевод в десятичную систему числа , записанного в -ичной системе счисления в виде
    (
    )
    сводится к вычислению значения многочлена средствами десятичной арифметики.
    При переводе следует придерживаться правила сохранения точности изображения числа в разных системах, причём под точностью понимается значение единицы самого младшего (правого) разряда, используемого в записи числа в той или иной системе счисления.

    51
    Пусть теперь перевод должен осуществляться средствами -ичной арифметики. В этом случае для перевода любого числа используют правило деления — для перевода целой части числа, и правило умножения — для перевода его дробной части.
    Перевод целых чисел
    . Выражения (9) и (10) для целых чисел будут иметь следующий вид со- ответственно:
    ,
    ,
    (11) где
    — цифры -ичной системы (
    ) и
    — искомые цифры -ичной системы
    (
    ).
    Так как
    , то можно записать:
    ,
    (12)
    где
    — искомые цифры в d-ичной системе счисления.
    Для определения разделим обе части равенства (12) на число , причём в левой части произведём деление, пользуясь правилами -ичной арифметики (так как запись числа в -ичной системе счисления известна). Выделим в частном [
    ] целую и дробную части:
    [
    ] [
    ]
    [
    ]
    ,
    где [
    ]
    — целая часть частного — неполное частное; [
    ]
    [
    ] — дробная часть частного,
    остаток — остаток от деления на .
    Правую часть перепишем в виде:
    [
    ]
    (13)
    Учитывая, что
    , приравняем между собой полученные целые и дробные части равен- ства (13):
    [
    ]
    ,
    [
    ]
    Таким образом, младший коэффициент в разложении (11) определяется соотношением:
    [
    ] , т.е. является остатком от деления на . Положим:
    [
    ]

    52
    Тогда будет целым числом и к нему можно применить ту же самую процедуру для опре- деления следующего коэффициента и т.д.
    Этот процесс продолжается до тех пор, пока неполное частное не станет равным нулю:
    [
    ]
    Поскольку все операции выполняются в системе счисления с основанием , то в этой же си- стеме будут получены искомые коэффициенты
    (поэтому их необходимо записать -ичной цифрой.
    Правило деления чаще всего используется для преобразования целых чисел из десятичной в любую другую систему счисления.
    Таким образом, правило перевода целых чисел из -ичной системы счисления в -ичную средствами -ичной арифметики может быть сформулировано в следующем виде.
    Для перевода целого числа из -ичной системы счисления в систему счисления с основа- нием необходимо разделить с остатком («нацело») на число , записанное в той же -ичной системе. Затем неполное частное, полученное от такого деления, нужно снова разделить с остатком на и т.д., пока последнее полученное неполное частное не станет равным нулю. Представлением числа в новой системе счисления будет последовательность остатков деления, изображённых - ичной цифрой и записанных в порядке, обратном порядку их получения.
    Перевод правильных дробей
    . Выражения (9) и (10) для правильной дроби будут иметь сле- дующий вид соответственно:
    ,
    , где
    — цифры -ичной системы (
    ) и
    — искомые цифры -ичной системы
    (
    ).
    При этом:
    ,
    (14)
    Для определения умножим обе части равенства (14) на число , причём в левой части произведём умножение, пользуясь правилами -ичной арифметики (так как запись числа в - ичной системе счисления известна). Выделим в произведении [
    ] целую и дробную части:
    [
    ] [
    ]
    [
    ]
    ,
    где [
    ]
    — целая часть произведения; [
    ]
    — дробная часть произведения.
    Правую часть перепишем в виде:
    [
    ]
    ,
    (15)
    Учитывая, что
    , приравняем между собой полученные целые и дробные части ра- венства (15):

    53
    [
    ]
    ,
    [
    ]
    Таким образом, младший коэффициент в разложении (14) определяется соотношением:
    [
    ]
    Положим:
    [
    ]
    Тогда будет правильной дробью и к нему можно применить ту же самую процедуру для определения следующего коэффициента и т.д.
    Этот процесс продолжается до тех пор, пока дробная часть произведения не станет равной нулю:
    [
    ]
    , или не будет достигнута требуемая точность представления числа.
    При переводе приближённых дробей из одной системы счисления в другую необходимо придерживаться следующего правила.
    Если единица младшего разряда числа , заданного в -ичной системе счисления, есть
    , то в его -ичной записи следует сохранить разрядов после запятой, где удовлетворяет условию:
    ( )
    , округляя последнюю оставляемую цифру обычным способом.
    Поскольку все операции выполняются в системе счисления с основанием , то в этой же си- стеме будут получены искомые коэффициенты
    , поэтому их необходимо записать -ичной цифрой.
    Правило умножения чаще всего используется для преобразования правильных дробей из десятич- ной в любую другую систему счисления.
    Таким образом, правило перевода правильных дробей из -ичной системы счисления в - ичную средствами -ичной арифметики может быть сформулировано в следующем виде.
    Для перевода правильной дроби из -ичной системы счисления в систему счисления с ос- нованием необходимо умножить на , записанное в той же -ичной системе, затем дробную часть полученного произведения снова умножить на и т.д. до тех пор, пока дробная часть очеред- ного произведения не станет равной нулю, либо не будет достигнута требуемая точность изображе- ния числа в -ичной системе. Представлением дробной части числа в новой системе счисления будет последовательность целых частей полученных произведений, записанных в порядке их полу- чения и изображённых -ичной цифрой. Если требуемая точность перевода числа составляет знаков после запятой, то предельная абсолютная погрешность при этом равняется
    ( )

    54
    Особого внимания заслуживает случай перевода чисел из одной системы счисления в другую, когда основания данных систем счисления и связаны равенством
    , где — целое положи- тельное число. В этом случае перевод из -ичной в -ичную систему счисления может быть осу- ществлён по следующему правилу.
    В исходной, -ичной, записи числа разряды объединяются вправо и влево от точки в группы длины (добавляя в случае необходимости левее старшей или правее младшей значащих цифр со- ответствующее количество нулей), и каждая такая группа записывается одной цифрой -ичной си- стемы счисления. Для обратного перевода из -ичной в -ичную систему счисления — каждая цифра числа, заданного в -ичной системе счисления заменяется её -ичным изображением.
    Двоичная, восьмеричная и шестнадцатеричная системы счисления
    В современной вычислительной технике, в устройствах автоматики и связи используется в ос- новном двоичная система счисления, что обусловлено рядом преимуществ данной системы счисле- ния перед другими системами. Так, для её реализации нужны технические устройства лишь с двумя устойчивыми состояниями, например материал намагничен или размагничен (магнитные ленты, диски), отверстие есть или отсутствует (перфолента и перфокарта). Этот обеспечивает более надёж- ное и помехоустойчивое представление информации, дает возможность применения аппарата буле- вой алгебры для выполнения логических преобразований информации. Кроме того, арифметические операции в двоичной системе счисления выполняются наиболее просто.
    Недостаток двоичной системы — быстрый рост числа разрядов, необходимых для записи больших чисел. Этот недостаток не имеет существенного значения для ЭВМ. Если же возникает необ- ходимость кодировать информацию «вручную», например, при составлении программы на машин- ном языке, то используют восьмеричную или шестнадцатеричную системы счисления. Числа в этих системах читаются почти так же легко, как десятичные, требуют соответственно в три (восьмеричная) и в четыре (шестнадцатеричная) раза меньше разрядов, чем в двоичной системе (числа 8 и 16 — со- ответственно третья и четвёртая степени числа 2), а перевод их в двоичную систему счисления и об- ратно осуществляется гораздо проще в сравнении с десятичной системой счисления.
    Перевод восьмеричных и шестнадцатеричных чисел в двоичную систему осуществляется пу- тём замены каждой цифры эквивалентной ей двоичной триадой (тройкой цифр) или тетрадой (чет- вёркой цифр) соответственно.
    Чтобы перевести число из двоичной системы в восьмеричную или шестнадцатеричную, его нужно разбить влево и вправо от запятой на триады (для восьмеричной) или тетрады (для шестна- дцатеричной) и каждую такую группу заменить соответствующей восьмеричной или шестнадцате- ричной цифрой.
    Правила выполнения арифметических операций сложения, вычитания, умножения и деления в 2-, 8- и 16-ичной системах счисления, как было отмечено выше, будут такими же, как и в десятич- ной системе, только надо пользоваться особыми для каждой системы таблицами сложения и умно- жения.
    При сложении цифры суммируются по разрядам, и если при этом возникает избыток, то он переносится влево.

    55
    Выполняя умножение многозначных чисел в различных позиционных системах счисления, можно использовать обычный алгоритм перемножения чисел в столбик, но при этом результаты пе- ремножения и сложения однозначных чисел необходимо брать из соответствующих рассматривае- мой системе таблиц умножения и сложения.
    Ввиду чрезвычайной простоты таблицы умножения в двоичной системе умножение сводится лишь к сдвигам множимого и сложениям.
    Деление в данных системах счисления, как и в любой другой позиционной системе счисле- ния, производится по тем же правилам, как и деление углом в десятичной системе. В двоичной си- стеме деление выполняется особенно просто, так как очередная цифра частного может быть только нолем или единицей.
    Двоично-десятичная система счисления
    Двоично-десятичная система счисления (ДДСС) широко используется в цифровых устройствах, когда основная часть операций связана не с обработкой и хранением вводимой информации, а с её вводом и выводом на какие-либо индикаторы с десятичным представлением полученных результа- тов (микрокалькуляторы, кассовые аппараты и т.п.).
    В двоично-десятичной системе десятичные цифры от 0 до 9 представляют 4-разрядными двоичными комбинациями от 0000 до 1001, т.е. двоичными эквивалентами десяти первых шестна- дцатеричных цифр. Преобразования из двоично-десятичной системы в десятичную систему счисле- ния (ДСС) (и обратные преобразования) не вызывают затруднений и выполняются путём прямой за- мены четырёх двоичных цифр одной десятичной цифрой (или обратной замены).
    Две двоично-десятичные цифры составляют 1 байт. Таким образом, с помощью 1 байта мож- но представлять значения от 0 до 99, а не от 0 до 255, как при использовании 8-разрядного двоично- го числа. Используя 1 байт для представления каждых двух десятичных цифр, можно формировать двоично-десятичные числа с любым требуемым числом десятичных разрядов.
    Сложение двоично-десятичных чисел, имеющих один десятичный разряд, выполняется так же, как и сложение 4-разрядных двоичных чисел без знака, за исключением того, что при получении результата, превышающего 1001, необходимо производить коррекцию. Результат корректируется путём прибавления двоичного кода числа 6, т.е. кода 0110.
    Если первоначальное двоичное сложение или прибавление корректирующего числа приво- дит к возникновению переноса, то при сложении многоразрядных двоично-десятичных чисел пере- нос осуществляется в следующий десятичный разряд.
    Представление числовой информации в ЭВМ
    Информация в памяти ЭВМ записывается в форме цифрового двоичного кода. С этой целью
    ЭВМ содержит большое количество ячеек памяти и регистров (от лат. regestum — внесённое, запи- санное) для хранения двоичной информации. Большинство этих ячеек имеет одинаковую длину , т.е. они используются для хранения бит двоичной информации (бит — один двоичный разряд).
    Информация, хранимая в такой ячейке, называется словом.
    Ячейки памяти и регистры состоят из элементов памяти. Каждый из таких электрических эле- ментов может находиться в одном из двух устойчивых состояний: конденсатор заряжен или разря-

    56 жен, транзистор находится в проводящем или непроводящем состоянии, специальный полупровод- никовый материал имеет высокое или низкое удельное сопротивление и т.п. Одно из таких физиче- ских состояний создает высокий уровень выходного напряжения элемента памяти, а другое — низ- кий. Обычно это электрические напряжения порядка 4—5 В и 0В соответственно, причём первое обычно принимается за двоичную единицу, а второе — за двоичный ноль (возможно и обратное ко- дирование).
    На рисунке 7 показан выходной сигнал такого элемента памяти (например, одного разряда регистра) при изменении его состояний (при переключениях) под воздействием некоторого входного сигнала. Переход от 0 к 1 и от 1 к 0 происходит не мгновенно, однако в определённые моменты вре- мени этот сигнал достигает значений, которые воспринимаются элементами ЭВМ как 0 или 1.
    Рисунок 7 — Графическое изображение двоичного сигнала
    Память ЭВМ состоит из конечной последовательности слов, а слова — из конечной последо- вательности битов, поэтому объём представляемой в ЭВМ информации ограничен ёмкостью памяти, а числовая информация может быть представлена только с определённой точностью, зависящей от архитектуры памяти данной ЭВМ.
    В вычислительных машинах применяются две формы представления двоичных чисел:

    естественная форма, или форма с фиксированной запятой (точкой);

    нормальная форма, или форма с плавающей запятой (точкой).
    С фиксированной запятой все числа изображаются в виде последовательности цифр с посто- янным для всех чисел положением запятой (точкой), отделяющей целую часть от дробной. В общем случае разрядная сетка ЭВМ с фиксированной запятой имеет вид, показанный на рисунке 8. знак
    2
    n – 1

    2 1
    2 0
    ,
    2
    –1 2
    –2

    2
    r
    n + 1
    r
    Рисунок 8 — Разрядная сетка для формы с фиксированной запятой
    Диапазон представления чисел по модулю для такой формы:
    | |
    Если в результате операции получится число, выходящее за допустимый диапазон, происхо- дит переполнение разрядной сетки, что нарушает нормальное функционирование вычислительной

    57 машины. В современных ЭВМ естественная форма представления используется как вспомогательная и только для целых чисел.
    С плавающей запятой каждое число изображается в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая — порядком, причём абсолютная величина мантиссы должна быть меньше 1, а порядок — целым числом. В общем случае число в форме с плавающей запятой может быть представлено в виде:
    , где — мантисса числа (| | ); — порядок числа ( — целое число); — основание системы счисления.
    При и наличии разрядов у мантиссы и разрядов у порядка (без учёта знаковых раз- рядов) диапазон представления чисел с плавающей запятой:
    (
    )
    | | (
    )
    (
    )
    Нормальная форма представления является основной в современных ЭВМ.
    Прямой, обратный и дополнительный коды
    Целые числа могут представляться в компьютере без знака или со знаком.
    Целые числа без знака
    . Обычно занимают в памяти компьютера один или два байта. В одно- байтовом формате принимают значения от 0 до 255. В двухбайтовом формате — от 0 до 65535.
    Целые числа со знаком: прямой, обратный и дополнительный коды
    . Целые числа со зна- ком обычно занимают в памяти компьютера один, два или четыре байта.
    В цифровых автоматах применяются три формы записи (кодирования) целых чисел со знаком: прямой код, дополнительный код, обратный код.
    Прямой код
    . Прямой -разрядный двоичный код отличается от двоичного тем, что в нём отво- дится один, как правило, самый старший разряд для знака, а оставшиеся разрядов — для зна- чащих цифр. Значение знакового разряда равно 0 для чисел
    , и 1 — для чисел
    Для прямого кода справедливо следующее соотношение:
     





    2 0
    10 2
    1
    зн
    n
    i
    i
    i
    a
    a
    A
    , где — разрядность кода;
    — значение знакового разряда.
    Дополнительный код
    . Использование чисел со знаком (прямого кода представления чисел) усложняет структуру ЭВМ. В этом случае операция сложения двух чисел, имеющих разные знаки, должна быть заменена на операцию вычитания меньшей величины из большей и присвоения ре- зультату знака большей величины. Поэтому в современных ЭВМ, как правило, отрицательные числа представляют в виде дополнительного или обратного кодов, что при суммировании двух чисел с разными знаками позволяет заменить вычитание на обычное сложение и упростить тем самым кон- струкцию арифметико-логического устройства компьютера.

    58
    Смысл перевода -разрядного отрицательного числа из прямого в дополнительный код за- ключается в получении его дополнения по формуле:
    ,
    (16)
    где — основание системы счисления.
    Так как количество различных целых -разрядных чисел равно
    (от 0 до
    ), то половину этих чисел рассматривают как положительные (от 0 до
    ), а другую половину — как отрицатель- ные (т.е. как дополнения к первой половине чисел). Полный же набор таких чисел называют числа- ми, представленными в дополнительном коде.
    Дополнения числа можно получить и без вычитания. Перепишем формулу (16) в виде:
    ((
    ) ) .
    Здесь число состоит из цифр ( ), т.е. старших цифр используемой системы счис- ления.
    Поэтому (
    ) можно получить путём образования дополнений до для каждой из цифр числа в отдельности, а искомое дополнение — суммированием этого числа с 1. Так как в двоичной системе дополнения цифр до 1 соответствуют их инверсным значениям (дополнение 0 равно 1, а дополнение 1 — 0), то можно дать простое правило для получения дополнения двоичных чисел:
    1.
    Получить инверсию заданного числа (все его 0 заменить на 1, а все 1 — на 0).
    2.
    Образовать дополнительный код заданного числа путём добавления 1 к инверсии этого чис- ла.
    Старший бит дополнительного кода двоичных чисел выполняет функцию знака числа, т.е. ра- вен 0 для положительных чисел и 1 — для их дополнений (отрицательных чисел). При этом положи- тельные числа в дополнительном коде изображаются так же, как и в прямом, — двоичными кодами с цифрой 0 в знаковом разряде.
    Для дополнительного кода справедливо следующее соотношение:









    2 0
    1
    зн
    10 2
    2
    n
    i
    i
    д
    i
    n
    a
    a
    A
    , где
    {
    ; — разрядность машинного слова.
    Обратный код
    . Для представления отрицательных чисел используется также обратный код, который получается инвертированием всех цифр двоичного кода абсолютной величины числа: ноли заменяются единицами, а единицы — нолями. При этом, необходимо помнить, что все операции с отрицательными числами выполняются в формате машинного слова. Это значит, что к двоичному числу слева дописываются ноли до нужного количества разрядов
    Для обратного кода справедливо следующее соотношение:

    59










    2 0
    1
    зн
    10 2
    1 2
    n
    i
    i
    о
    i
    n
    a
    a
    A
    , где
    {
    ; — разрядность машинного слова.
    Для положительных чисел и представление числа полностью совпадает с представле- нием в прямом и дополнительном кодах.
    Таким образом, положительные числа в прямом, обратном и дополнительном кодах изобра- жаются одинаково — двоичными кодами с цифрой 0 в знаковом разряде.
    Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрица- тельные десятичные числа.
    Выполнение арифметических операций над целыми числами
    В большинстве вычислительных устройств с целью упрощения их конструкции операция вы- читания не используется. Вместо неё производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого.
    Сложение обратных кодов
    . В этом случае при сложении чисел X и Y имеют место четыре ос- новных и два особых случая:
    1.
    Х и Y положительные. При суммировании складываются все разряды, включая разряд знака.
    Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю.
    2.
    X положительное, Y отрицательное и по абсолютной величине больше, чем X.
    3.
    X положительное, Y отрицательное и по абсолютной величине меньше, чем X. Компьютер ис- правляет полученный первоначально некорректный результат переносом единицы из знако- вого разряда в младший разряд суммы.
    4.
    X и Y отрицательные. Полученный первоначально некорректный результат компьютер ис- правляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются.
    При сложении может возникнуть ситуация, когда старшие разряды результата операции не помещаются в отведённой для него области памяти. Такая ситуация называется переполнением раз- рядной сетки формата числа. Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства. Ниже приведены два возможных случая перепол- нения.
    5.
    Х и Y положительные, сумма Х + Y больше либо равна
    , где — количество разрядов формата чисел. разрядов цифровой части числового формата недостаточно для разме- щения -восьмиразрядной суммы, поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свиде- тельством переполнения разрядной сетки.

    60 6.
    Х и Y отрицательные, сумма абсолютных величин X и Y больше либо равна
    . Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении раз- рядной сетки.
    Сложение дополнительных кодов
    . Здесь также имеют место рассмотренные выше шесть случаев. В двух случаях (пятом и шестом) ограниченная разрядность чисел приводит к искажению не только величины, но и знака результата. Исправить положение можно, добавляя к результату (слу- чай 5) или вычитая из него (случай 6) число
    Для обеспечения корректности вычислений перед суммированием необходимо анализиро- вать знаки слагаемых и результата. Разные знаки слагаемых или совпадение знаков слагаемых со знаком суммы свидетельствуют о том, что результат будет корректным.
    Для контроля за выполнением арифметических операций в процессоре ЭВМ (устройстве, в котором выполняются арифметические операции) содержатся два индикатора — индикатор перено- са и индикатор переполнения. Каждый индикатор содержит 1 бит информации и может иметь зна- чение, равное 1 (индикатор установлен) или равное 0 (индикатор сброшен). Индикатор переноса указывает на перенос из знакового бита, а индикатор переполнения — на перенос в знаковый бит.
    Таким образом, после завершения операции, в которой происходит перенос в старший бит, процес- сор устанавливает индикатор переполнения. Если такого переноса нет, то индикатор переполнения сбрасывается. Индикатор переноса обрабатывается аналогичным образом.
    После выполнения операции процессором, ЭВМ сигнализирует о состоянии индикаторов, и их можно проверить. Если состояние индикаторов указывает на неправильный арифметический ре- зультат, то необходимо предпринять меры, исправляющие эту ситуацию, т.е. пользователю ЭВМ предоставляется возможность контролировать правильность выполнения арифметических операций.
    Операции сложения и вычитания являются основными операциями в ЭВМ. Это объясняется тем, что они легко выполняются и любые более сложные операции (умножение, деление, вычисле- ние тригонометрических функций и т.д.) могут быть сведены к многократным сложениям и вычита- ниям. Так, во многих компьютерах умножение производится как последовательность сложении и сдвигов, а деление реализуется путем многократного прибавления к делимому дополнительного кода делителя.
    Смещённый код и код Грея
    Смещённый код, или, как его ещё называют, двоичный код с избытком, используется в ЭВМ для упрощения операций над порядками чисел с плавающей запятой. Он формируется следующим образом. Сначала выбирается длина разрядной сетки — и записываются последовательно все воз- можные кодовые комбинации в обычной двоичной системе счисления. Затем кодовая комбинация с единицей в старшем разряде, имеющая значение выбирается для представления числа 0. Все последующие комбинации с единицей в старшем разряде будут представлять числа 1, 2, 3, … соот- ветственно, а предыдущие комбинации в обратном порядке — числа –1, –2, –3, ….
    Различие между двоичным кодом с избытком и двоичным дополнительным кодом состоит в противоположности значений знаковых битов, а разность значений кодовых комбинаций в обычном двоичном коде и двоичном коде с избытком для -разрядных сеток равна

    61
    Смещённый код можно создать для любого значения -разрядности сетки. При этом он будет называться двоичным кодом с избытком
    Как было отмечено выше, смещённый код используется для упрощения операций над поряд- ками чисел с плавающей запятой. Так, при размещении порядка числа в 8 разрядах используется двоичный код с избытком 128. В этом случае порядок, принимающий значения в диапазоне от –128 до +127, представляется смещённым порядком, значения которого меняются от 0 до 255, что позво- ляет работать с порядками как с целыми без знака.
    Код Грея широко используется в различных преобразовательных устройствах (для кодирова- ния положений валов, дисков и т.д.), с тем, чтобы разрешить проблемы, связанные с возможностью одновременного изменения нескольких разрядов кодового слова.
    Характерной особенностью кода Грея является то, что в нём соседние кодовые слова разли- чаются только в одном разряде.
    Правила перевода числа из кода Грея в обычный двоичный код сводятся к следующему:
    1.
    Первая единица со стороны старших разрядов остаётся без изменения.
    2.
    Последующие цифры (0 и 1) остаются без изменения, если число единиц, им предшествую- щих, чётно, инвертируются — если нечётно.
    Код Грея широко используется для кодирования положений валов, дисков и т.д., позволяя свести к единице младшего разряда погрешность при считывании. Внешняя дорожка диска соответ- ствует младшему разряду. Каждому дискретному значению угла ставится в соответствие определён- ное двоичное число. Для считывания с каждого из разрядов могут использоваться различные чув- ствительные элементы: щётки, фотоэлементы и т.д. При использовании такой маски с обычным дво- ичным кодом в местах, где одновременно изменяется состояние нескольких чувствительных элемен- тов, при считывании могут возникать значительные погрешности. Указанный недостаток устраняется при использовании масок с кодом Грея. В коде Грея при последовательном переходе от числа к чис- лу изменяется только один разряд, поэтому погрешность при считывании не может превосходить единицы младшего разряда не-зависимо от того, в каком разряде имела место неопределённость.
    Представление вещественных чисел в ЭВМ
    Любое вещественное число , представленное в системе счисления с основанием , можно записать в виде:
    , где — мантисса; — порядок числа (целое число).
    Такое представление чисел называется представлением с плавающей запятой, где порядок определяет, на сколько разрядов необходимо осуществить сдвиг относительно запятой.
    Если «плавающая» запятая расположена в мантиссе перед первой значащей цифрой, то при фиксированном количестве разрядов, отведённых под мантиссу, обеспечивается запись максималь- ного количества значащих цифр числа, т.е. максимальная точность представления числа. Из этого следует то, что мантисса должна быть правильной дробью (| | ), у которой первая цифра после запятой отлична от ноля (| | ). Для двоичной системы счисления , | | . Если это

    62 требование выполнено, то число называется нормализованным. Нормализованная мантисса в дво- ичной системе счисления всегда представляется десятичным числом , лежащим в диапазоне
    При написании вещественных чисел в программах вместо привычной запятой принято ста- вить точку.
    Вещественные числа в компьютерах представляются, как правило, в трёх форматах — оди- нарном, двойном и расширенном, имеющих одинаковую структуру вида, представленного на рисун- ке 9.
    n–1
    n–2

    m
    m–1

    1 0 знак смещённый порядок абсолютная величина мантиссы
    Рисунок 9 — Формат представления вещественных чисел
    Здесь порядок -разрядного нормализованного числа задается смещённым кодом, позволя- ющим производить операции над порядками как над беззнаковыми числами, что упрощает опера- ции сравнения, сложения и вычитания порядков, а также операцию сравнения самих нормализован- ных чисел.
    Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон от наименьшего отличного от нуля числа до наибольшего числа, представимого в машине при заданном формате.
    Нормализованное число одинарной точности, представленное в формате с плавающей запя- той, записывается в память следующим образом: знак числа (знак мантиссы) — в бите 15 первого слова (0 — для положительных и 1 — для отрицательных чисел); порядок размещается в битах 7—14 первого слова, а мантисса занимает остальные 23 бита в двух словах. При этом, хотя для мантиссы от- ведены 23 разряда, в операциях участвуют 24 разряда, так как старший разряд мантиссы нормализо- ванного числа не хранится (он всегда равен 1), т.е. имеет место так называемый скрытый разряд, ко- торый при аппаратном выполнении операций автоматически восстанавливается и учитывается при выполнении операций. Порядок числа также учитывает скрытый старший разряд мантиссы.
    Нормализованное число двойной точности представляет собой 64-разрядное нормализован- ное число со знаком, 11-разрядным смещённым порядком и 53-разрядной мантиссой (размер поля, выделенного для хранения мантиссы, составляет 52 разряда, а старший бит мантиссы не хранится).
    Расширенный формат позволяет хранить ненормализованные числа в виде 80-разрядного числа со знаком: 15-разрядным смещённым порядком и 64-разрядной мантиссой.
    Следует отметить, что вещественный формат с -разрядной мантиссой даёт возможность аб- солютно точно представлять -разрядные целые числа, т.е. любое двоичное целое число, со- держащее не более разрядов, может быть без искажений преобразовано в вещественный формат.
    Выполнение арифметических действий над нормализованными числами
    При алгебраическом сложении и вычитании чисел, представленных в формате с плавающей запятой, сначала уравниваются порядки слагаемых. В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своём регистре вправо на количество разрядов, равное раз- ности порядков операндов. После каждого сдвига порядок увеличивается на единицу. В результате

    63 выравнивания порядков одноимённые разряды чисел оказываются расположенными в соответству- ющих разрядах обоих регистров, после чего мантиссы складываются или вычитаются. В случае необ- ходимости полученный результат нормализуется путём сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу.
    При умножении порядки складываются, а мантиссы перемножаются.
    При делении из порядка делимого вычитается порядок делителя, а над мантиссами соверша- ется обычная операция деления. В случае необходимости полученный результат нормализуется, что приводит к изменению порядков, так как каждый сдвиг на один разряд влево соответствует умень- шению порядка на единицу, а сдвиг вправо — увеличению его на единицу. Введение термина «пла-
    вающая запятая» как раз и объясняется тем, что двоичный порядок, определяющий фактическое положение запятой в изображении числа, корректируется после выполнения каждой арифметиче- ской операции, т.е. запятая в изображении числа плавает (изменяется её положение) по мере изме- нения данной величины.
    Погрешности представления числовой информации в ЭВМ
    Представление числовой информации в ЭВМ, как правило, влечёт за собой появление по- грешностей (ошибок), величина которых зависит от формы представления чисел и от длины разряд- ной сетки цифрового автомата.
    Абсолютная погрешность [ ] представления кода числа в разрядной сетке ЭВМ опреде- ляется по формуле:
    [ ] | | |
    |, где | | — модуль числа , код которого требуется представить в ЭВМ; |
    | — модуль числа
    , код которого представлен в разрядной сетке.
    Относительная погрешность представления — величина [ ]
    [ ]
    |
    |
    Для чисел с фиксированной запятой, представленных в формате, приведённом на рисунке 8, наибольшее значение абсолютной погрешности равно весу младшего разряда разрядной сетки:
    [ ]
    Другими словами, максимальная погрешность перевода десятичной информации в двоичную не будет превышать единицы младшего разряда разрядной сетки автомата. Минимальная погреш- ность перевода равна нулю.
    Отбрасывание младших разрядов кода числа, не вошедших в разрядную сетку, может быть выполнено с округлением. В этом случае, если число , код которого отбрасывается, меньше поло- вины веса младшего разряда разрядной сетки ЭВМ (
    ), то код числа в разрядной сетке остается без изменений. В противном случае в младший разряд кода разрядной сетки добавляется единица.
    Наибольшая абсолютная погрешность представления числа в разрядной сетке с округлением равна:
    [
    ]

    64
    Пределы изменения относительной погрешности при представлении чисел с фиксированной запятой в ЭВМ с округлением определяются по формулам:
    [ ]
    [
    ]
    | |
    ;
    [ ]
    [
    ]
    | |
    Из последней формулы видно, что погрешности представления чисел в форме с фиксирован- ной запятой могут быть значительными.
    Для представления чисел в форме с плавающей запятой (см. рисунок 9) абсолютное значение мантиссы
    :
    |
    | где — количество разрядов, отведённых под мантиссу.
    В этом случае, как и для формата с фиксированной запятой, наибольшее значение абсолют- ной погрешности представления мантиссы равно весу младшего разряда разрядной сетки, а наибольшая абсолютная погрешность представления мантиссы в разрядной сетке с округлением равна:
    [
    ]
    Для нахождения погрешности представления числа в форме с плавающей запятой вели- чину этой погрешности надо умножить на величину порядка числа
    :
    [
    ]
    [
    ]
    |
    |
    ;
    [
    ]
    [
    ]
    |
    |
    (
    )
    , где — количество разрядов для представления мантиссы числа.
    Для ЭВМ , тогда и [
    ]
    . Таким образом, относительная точность представления чисел в форме с плавающей запятой почти не зависит от величины числа и определяется количеством разрядов, отведённых под мантиссу.

    1   2   3   4   5   6   7   8   9   ...   16


    написать администратору сайта