Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Двоичная система счисления.
В двоичной системе счисления основание 2: используется только два символа: 0, 1. Поэтому арифметика очень простая: 0+0=0, 0+1=1, 1+0=1, 1+1=10 (0 и перенос в следующий разряд). Запись 11011, 101 некоторого двоичного числа соответствует следующему десятичному числу: 1·24+ 1·23+0·22+ 1·21+ 1·20, 1·2-1+0·2-2+1·2-3=27, 625. Такое представление числа называется представлением с фиксированной запятой. Запятая фиксирована в соответствующей аппаратуре (арифметико-логическом устройстве АЛУ). Часто числа представлялись в виде дробей, поэтому как исходные данные, так и результаты решения задач должны были представляться именно так. Для этого проводили масштабирование – выбирали масштабные коэффициенты. Неправильный выбор масштабных коэффициентов мог вызвать так называемое переполнение разрядной сетки – ошибку в виде образования целой части, для которой в разрядной сетке нет места, и она теряется. Рассмотрим, как выполняется двоичное суммирование: Пусть необходимо сложить два двоичных числа 101 и 11: Двоичное вычитание, например, (10-6 в десятичном коде) выглядит следующим образом: Для выполнения такой операции необходим специальный «вычитатель», поэтому вычитание заменяют сложением числа в так называемом обратном коде, когда разряды вычитаемого инверсируют: При этом образуется перенос 1, который необходимо сложить с промежуточным результатом 0011: таким образом, получаем ответ 0100 (10-6=4 в десятичном коде). Для операций в обратном коде необходим специальный сумматор с так называемым циклическим переносом, обеспечивающим сложение переноса с промежуточным результатом. Это неудобно, поэтому применяют так называемый дополнительный код, который устраняет циклический перенос. Представим десятичное число –6 в двоичном дополнительном коде (то есть, заменяем операцию 10-6 на операцию 10+ (–6), числа здесь в десятичном коде): –6 десятичное это –0110 двоичное, в обратном коде 1001, да еще прибавляем единицу (таковы правила образования дополнительного кода): таким образом, дополнительный двоичный код десятичного числа –6 равен 1 010. Здесь старший подчеркнутый разряд это знак, знаковый разряд. Тогда операция вычитания выглядит так: перенос, возникающий в этом случае, просто отбрасывается, получаем 0100 (4 десятичное). Поэтому при аппаратной реализации вычитания может быть использован обычный сумматор. Дополнительные коды четырехразрядных двоичных чисел показаны в табл. 65. Таблица 65 Дополнительные коды
Таким образом, в формате из четырех разрядов представимы числа в диапазоне –7+7 (23 -1). При использовании байта с фиксированной запятой представляют целые числа в диапазоне –127+127 (27 –1). В общем случае n бит могут кодировать 2n объектов. Перевод чисел из десятичной в двоичную систему счисления выполняют, например, путем деления на основание системы счисления – 2, и записывают соответствующие остатки, либо подбирают соответствующие степени числа 2. Пример. Дано десятичное число 38, ближайшая степень числа 2 – это число 32, т.е. 25, остается еще 6, ближайшая степень числа 2 – это 4, т.е. 22, остается 2, это 21. Таким образом: 0× 27+0× 26+1× 25+0× 24+0× 23+1× 22+1× 21+0× 20=100110.
|