p align="left">Для перевода восьмеричного числа в двоичную форму достаточно заменить каждую цифру восьмеричного числа соответствующим трехразрядным двоичным числом. Таким же образом для перехода от шестнадцатеричной системы к двоичной каждая цифра шестнадцатеричного числа заменяется соответствующим четырехразрядным двоичным числом. При этом отбрасывают ненужные нули. Например, восьмеричное число 305,4 в двоичной форме записи имеет вид: а шестнадцатеричное число 7В2,Е в двоичной системе запишется следующим образом: Для перехода от двоичной к восьмеричной (или шестнадцатеричной) системе поступают следующим образом: двигаясь от запятой влево и вправо, разбивают двоичное число на группы по три (четыре) разряда, дополняя при необходимости нулями крайние левую и правую группы. Затем каждую группу из трех (четырех) разрядов заменяют соответствующей восьмеричной (шестнадцатеричной) цифрой. Приведем примеры: а) Перевод двоичного числа 1101111001, 1101 в восьмеричное: б) Перевод двоичного числа 11111111011,100111 в шестнадцатеричное: Двоичные числа, наборы цифр которых разбиты на группы по три (четыре) разряда, а крайние группы при необходимости дополнены нулями, можно считать восьмеричными (шестнадцатеричными) числами, в которых цифра каждого разряда записана в двоичной системе в виде трех (четырех) разрядного двоичного числа. Такие формы записи чисел носят название двоично-восьмеричной и двоично-шестнадцатеричной системы. Они называются также двоично-кодированными системами. В вычислительных системах также применяются специальные формы кодирования десятичных чисел. Этот вопрос будет рассмотрен ниже. В настоящее время для большинства вычислительных машин основной системой счисления является двоичная. Двоичная система и двоичный алфавит используются во многих машинах для представления и хранения чисел и команд и при выполнении арифметических и логических операций. Восьмеричная и шестнадцатеричная системы используются при составлении программ для более короткой и удобной записи двоичных кодов -- команд, так как эти системы не требуют специальных операций для перевода в двоичную систему. Числовые данные, необходимые для решения задачи, вводятся в машину обычно в десятичной системе в виде специальных кодов. Перевод десятичных чисел в двоичные выполняется машиной. Результаты расчета выводятся из машины в десятичной системе. Перевод данных из двоичной системы в десятичную производится машиной. При выводе из запоминающего устройства команд они печатаются в шестнадцатеричной (восьмеричной) системе. Числа также могут выводиться в шестнадцатеричной (восьмеричной) системе. Двоичная арифметика Правила выполнения арифметических действий над двоичными числами задаются таблицами двоичных сложения, вычитания и умножения: |
Таблица двоичного сложения | Таблица двоичного вычитания | Таблица двоичного умножения | | 0+0=0 0+1=1 1+0=1 1+1=0 + +единица переносится в старший разряд | 0-0=0 1-0=1 1-1=0 0-1=1 + +единица занимается из старшего разряда | 0*0=0 0*1=0 1*0=0 1*1=1 | | |
Правила арифметики во всех позиционных системах аналогичны. Поэтому сложение двух чисел в двоичной системе можно выполнять столбиком, начиная с младшего разряда, подобно тому, как мы это делаем в десятичной системе. В каждом разряде в соответствии с правилами, указанными таблицей двоичного сложения, производится сложение двух цифр слагаемых или двух этих цифр и единицы, если имеется перенос из соседнего младшего разряда. В результате получается цифра соответствующего разряда суммы и, возможно, также единица переноса в старший разряд. Приведем пример на сложение двух двоичных чисел. Переносы: Справа показано сложение тех же чисел, представленных в десятичной системе. Вычитание чисел в двоичной системе выполняется подобно вычитанию в десятичной системе. При вычитании в данном разряде при необходимости занимается единица из следующего старшего разряда. Эта занимаемая единица равна двум единицам данного разряда. Занимание производится каждый раз, когда цифра в разряде вычитаемого больше цифры в том же разряде уменьшаемого. Поясним сказанное примером: Умножение двоичных многоразрядных чисел производится путем образования частичных произведений и последующего их суммирования. В соответствии с таблицей двоичного умножения каждое частичное произведение равно нулю, если в соответствующем разряде множителя стоит нуль, или равно множимому, сдвинутому на соответствующее число разрядов влево, если в разряде множителя стоит единица. Таким образом, операция умножения многоразрядных двоичных чисел сводится к операциям сдвига и сложения. Положение запятой определяется так же, как при умножении десятичных чисел. Сказанное поясняется примером: 10111 10101 ____________ 10111 00000 + 10111 00000 10111 ________________________ 111100011 Деление чисел в двоичной системе производится аналогично делению десятичных чисел. Достаточно рассмотреть деление двух целых двоичных чисел, так как делимое и делитель всегда могут быть приведены к такому виду путем перенесения запятой в делимом и делителе на одинаковое число разрядов и дописывания нулей в недостающие справа разряды. Особенности выполнения деления двоичных чисел поясняются примером: 1100,011 : 10,01 = ? 1100011 10010 10010 101,1 ____________________ 11011 10010 ______________ 10010 10010 ______________ 00000 Благодаря простоте правил двоичного сложения, вычитания и умножения применение в ЦВМ двоичной системы счисления позволяет упростить схемы арифметических устройств. Правила перевода Перейдем к рассмотрению правил перевода чисел из, одной системы счисления в другую. Необходимость в таких преобразованиях возникает из-за того, что ЦВМ работает в двоичной системе счислений, программа записывается в шестнадцатеричной или восьмеричной системе, а подготовка исходных данных для расчетов и выдача результатов расчета из машины производятся в десятичной системе. Обычно преобразования чисел из одной системы счисления в другую выполняются автоматически устройствами машины. Однако при программировании задач, а также при вмешательстве оператора в процесс решения задачи на ЦВМ может возникать необходимость ручного перевода отдельного числа или небольшой группы чисел из одной системы в другую. Правила перевода зависят от того, какая арифметика используется при выполнении арифметических операций, связанных с преобразованием чисел, -- арифметика той системы счисления, в которой представлено исходное число, или арифметика системы счисления, в которую число переводится. Пусть необходимо перевести число y, представленное в системе счисления с основанием s: в h-систему, выполняя нужные для этого арифметические действия в новой h-системе. Для этого достаточно число представить в виде соответствующей суммы степеней s: в которой основание s и все коэффициенты еi выражены в новой h-системе, и выполнить в h-системе все необходимые для вычисления этой суммы действия. Пример 1. Перевести в десятичную систему шестнадцатеричное число у = (2Е5,А)16 . Для этого представляют у в виде: Пример 2. Перевести в десятичную систему двоичное число z = (11011,101)2 : Рассмотрим теперь перевод числа из s-системы в h-систему посредством арифметических операций исходной s-системы. В этом случае правила для перевода целых чисел и дробей различны. Перевод целых чисел Пусть целое число у, представленное в s-системе, требуется перевести в h-систему. Искомая запись числа у в h-системе имеет вид: Разделив у на h, получим: Отсюда где у1 есть частное от деления числа у на основание системы h, а младшая цифра искомого представления числа у в h-системе есть остаток от этого деления. Если теперь разделить у1 на h, то получим: В силу остаток от второго деления есть цифра у2 следующего разряда в представлении числа у в h-системе и т.д. Таким образом, получаем правило: для перевода целого числа из s-системы счисления в h-систему нужно последовательно делить это число и получаемые частные на Основание h новой системы, представленное в старой s-системе, до тех пор, пока частное не станет меньше h. Старшей цифрой в записи числа в h-системе служит последнее частное, а следующие за ней цифры дают остатки, выписываемые s последовательности, обратной их получению. Перевод дробных чисел Перевод в h-систему правильной дроби z представленной в системе счисления с основанием s, означает запись этой дроби в виде: Умножая z на h получаем: где у-1 и z1 соответственно целая и дробные части этого произведения. При этом целая часть у-1 есть старшая цифра в представлении числа z в h-системе. Если теперь умножить на h правильную дробь z1, то целая часть произведения дает следующую цифру у-2 в представлении числа в h системе. Следовательно, можно сформулировать правило: для перевода правильной дроби из s-системы в систему счисления с основанием h нужно умножить исходную дробь и дробные части получающихся произведений на основание h, представленное в старой s-системе. Целые части получающихся произведений дают последовательность цифр в представлении дроби в h-системе. Обычно перевод дробей из одной системы в другую производят приближенно. При переводе неправильной дроби переводят отдельно целую и дробную части, руководствуясь соответствующими правилами. Прямой, обратный и дополнительный коды При проектировании вычислительных устройств необходимо решить вопрос о способе представления в машине положительных и отрицательных чисел и о признаке переполнения разрядной сетки. Указанный вопрос решается применением специальных колов для представления чисел. При помощи этих кодов операция вычитания (или алгебраического сложения) сводится к арифметическому сложению. В результате упрощаются арифметические устройства машин. Для представления двоичных чисел в машине применяют прямой, обратный и дополнительный коды. Во всех этих кодах предусматривается дополнительный разряд для представления знака числа, причем знак «+» кодируется цифрой 0, а знак « -- » - цифрой 1. Положительные числа при прямом, обратном и дополнительном кодах имеют один и тот же вид, а отрицательные -- различный. Прямой код (G)пр двоичного числа G = ± 0, г1, г2, … , гn (гi = 1 или 0) определяется условиями: G при G ? 0 (G)пр = (1 - G) при G ? 0 Положительное двоичное число с запятой, фиксированной перед старшим разрядом, G+ = + 0, г1, г2, … , гn в прямом коде представляется в виде: (G+) пр = 0, г1, г2, … , гn (1) Аналогично отрицательное двоичное число: G- = - 0, г1, г2, … , гn (1a) в прямом коде представляется в виде: (G-) пр = 1, г1, г2, … , гn (2) Способы представления чисел (1) и (2) называются прямым кодом соответственно положительных и отрицательных двоичных чисел. Сложение и вычитание в прямом, обратном и дополнительном кодах Сложение в прямом коде чисел, имеющих одинаковые знаки, выполняется достаточно просто. Мантиссы складываются и сумме присваивается код знака слагаемых. Значительно более сложной является операция алгебраического сложения в прямом коде чисел с раз- личными знаками. В этом случае приходится определять большое по модулю число, производить вычитание мантисс и присваивать разности знак большего (по модулю) числа. Таким образом, если положительные и отрицательные числа представлены в прямом коде, операции над кодами знаков и мантиссами выполняются раздельно. Операция вычитания (алгебраического сложения) сводится к операции простого арифметического сложения при помощи обратного и дополнительного кодов, используемых для представления отрицательных чисел в машине. При этом операция сложения распространяется и на разряды знаков, рассматриваемых как разряды целой части числа.
Страницы: 1, 2, 3
|