Двоичная запись чисел
В двоичной системе счисления числа записываются с помощью двух символов ( и 1). Чтобы не путать, в какой системе счисления записано число, его снабжают указателем справа внизу. Например, число в десятичной системе 510, в двоичной 1012. Иногда двоичное число обозначают префиксом 0b или символом & (амперсанд), например 0b101 или соответственно &101.
В двоичной системе счисления (как и в других системах счисления, кроме десятичной) знаки читаются по одному. Например, число 1012 произносится «один ноль один».
Натуральные числа
Натуральное число, записываемое в двоичной системе счисления как (an−1an−2…a1a)2{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}}, имеет значение:
- (an−1an−2…a1a)2=∑k=n−1ak2k,{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}=\sum _{k=0}^{n-1}a_{k}2^{k},}
где:
- n{\displaystyle n} — количество цифр (знаков) в числе,
- ak{\displaystyle a_{k}} — цифры из множества {0,1},
- k{\displaystyle k} — порядковый номер цифры.
Отрицательные числа
Отрицательные двоичные числа обозначаются так же как и десятичные: знаком «−» перед числом. А именно, отрицательное целое число, записываемое в двоичной системе счисления (−an−1an−2…a1a)2{\displaystyle (-a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}}, имеет величину:
- (−an−1an−2…a1a)2=−∑k=n−1ak2k.{\displaystyle (-a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}=-\sum _{k=0}^{n-1}a_{k}2^{k}.}
В вычислительной технике широко используется запись отрицательных двоичных чисел в дополнительном коде.
Дробные числа
Дробное число, записываемое в двоичной системе счисления как (an−1an−2…a1a,a−1a−2…a−(m−1)a−m)2{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m})_{2}}, имеет величину:
- (an−1an−2…a1a,a−1a−2…a−(m−1)a−m)2=∑k=−mn−1ak2k,{\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m})_{2}=\sum _{k=-m}^{n-1}a_{k}2^{k},}
где:
- m{\displaystyle m} — число цифр дробной части числа,
- ak{\displaystyle a_{k}} — цифры из множества {,1}{\displaystyle \{0,1\}}.
4.12. Как компьютер выполняет арифметические действия над целыми числами?
В большинстве компьютеров операция вычитания не используется.
Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого
и вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.
Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:
1. А и В положительные. При суммировании
складываются все разряды, включая разряд знака. Так как знаковые разряды
положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:
Получен правильный результат.
2. А положительное, B отрицательное и по абсолютной величине
больше, чем А. Например:
Получен правильный результат в обратном коде. При переводе в прямой
код биты цифровой части результата инвертируются: 1 0000111 = -710.
3. А положительное, B отрицательное и по абсолютной величине меньше,
чем А. Например:
Компьютер исправляет полученный первоначально неправильный результат (6
вместо 7) переносом единицы из знакового разряда в младший разряд суммы.
4. А и В отрицательные. Например:
Полученный первоначально неправильный результат (обратный код числа
-1110 вместо обратного кода числа -1010) компьютер
исправляет переносом единицы из знакового разряда в младший разряд суммы.
При переводе результата в прямой код биты цифровой части числа
инвертируются: 1 0001010 = -1010.
При сложении может возникнуть ситуация, когда старшие разряды результата
операции не помещаются в отведенной для него области памяти. Такая ситуация
называется переполнением разрядной сетки формата числа. Для
обнаружения переполнения и оповещения о возникшей ошибке в компьютере
используются специальные средства. Ниже приведены два возможных случая
переполнения.
5. А и В положительные, сумма А+В больше, либо равна 2n-1,
где n количество разрядов формата чисел (для однобайтового формата n=8,
2n-1 = 27 = 128). Например:
Семи разрядов цифровой части числового формата недостаточно
для размещения восьмиразрядной суммы (16210 =
101000102), поэтому старший разряд суммы оказывается в
знаковом разряде. Это вызывает несовпадение знака суммы и знаков
слагаемых, что является свидетельством переполнения разрядной сетки.
6. А и В отрицательные, сумма абсолютных величин А и В больше,
либо равна 2n-1. Например:
Здесь знак суммы тоже не совпадает со знаками слагаемых,
что свидетельствует о переполнении разрядной сетки.
Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:
1. А и В положительные. Здесь нет отличий от случая 1,
рассмотренного для обратного кода.
2. А положительное, B отрицательное и по абсолютной величине больше,
чем А. Например:
Получен правильный результат в дополнительном коде. При переводе в
прямой код биты цифровой части результата инвертируются и к младшему
разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = -710.
3. А положительное, B отрицательное и по абсолютной величине меньше,
чем А. Например:
Получен правильный результат. Единицу переноса из знакового разряда
компьютер отбрасывает.
4. А и В отрицательные. Например:
Получен правильный результат в дополнительном коде. Единицу переноса
из знакового разряда компьютер отбрасывает.
Случаи переполнения для дополнительных кодов рассматриваются по аналогии
со случаями 5 и 6 для обратных кодов.
Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:
- на преобразование отрицательного числа в обратный код компьютер затрачивает
меньше времени, чем на преобразование в дополнительный код, так как последнее
состоит из двух шагов образования обратного кода и прибавления единицы
к его младшему разряду; - время выполнения сложения для дополнительных кодов чисел меньше, чем
для их обратных кодов, потому что в таком сложении нет переноса единицы
из знакового разряда в младший разряд результата.
Во многих компьютерах умножение производится как последовательность
сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый
накапливающим сумматором, который до начала выполнения операции
содержит число ноль. В процессе выполнения операции в нем поочередно
размещаются множимое и результаты промежуточных сложений,
а по завершении операции окончательный результат.
Другой регистр АЛУ, участвующий в выполнении этой операции, вначале
содержит множитель. Затем по мере выполнения сложений содержащееся в
нем число уменьшается, пока не достигнет нулевого значения.
Для иллюстрации умножим 1100112 на 1011012.

Деление для компьютера является трудной операцией. Обычно оно
реализуется путем многократного прибавления к делимому дополнительного
кода делителя.
Единичная система счисления.
С первых попыток научиться считать у людей возникла необходимость записи чисел. Сначала это было легко — зарубка либо черточка на любой поверхности отвечала за один предмет. Таким образом возникла первая система счисления — единичная.
Число в единичной системе счисления представляет собой строку из черточек (палочек), количество которых равно значению данного числа. Таким образом, урожай из 100 фиников будет равен числу, состоящему из 100 черточек.
В более позднее время для упрощения восприятия больших чисел, эти знаки стали группировать по три или по пять. Далее равнообъёмные группы знаков начали заменять новым знаком — так возникли прообразы современных цифр.
У данной системы есть значительные недостатки — чем больше число, тем длиннее строка из палочек. Кроме того, существует большая вероятность в записи числа, пропустив или случайно дописав палочку.
Изначально в счете использовали пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.
4.2. Как порождаются целые числа в позиционных системах счисления?
В каждой системе счисления цифры упорядочены в соответствии с их значениями:
1 больше 0, 2 больше 1 и т.д.
Продвижением цифры называют замену её следующей по величине. |
Продвинуть цифру 1 значит заменить её на 2, продвинуть цифру 2 значит
заменить её на 3 и т.д. Продвижение старшей цифры (например, цифры
9 в десятичной системе) означает замену её на 0. В двоичной
системе, использующей только две цифры 0 и 1, продвижение 0 означает
замену его на 1, а продвижение 1 замену её на 0.
Целые числа в любой системе счисления порождаются с помощью Правила
счета []:
Для образования целого числа, следующего за любым данным целым числом, нужно продвинуть самую правую цифру числа; если какая-либо цифра после продвижения стала нулем, то нужно продвинуть цифру, стоящую слева от неё. |
Применяя это правило, запишем первые десять целых чисел
-
в двоичной системе: 0,
1, 10, 11, 100, 101,
110, 111, 1000, 1001; -
в троичной системе: 0,
1, 2, 10, 11, 12,
20, 21, 22, 100; -
в пятеричной системе: 0, 1,
2, 3, 4, 10, 11,
12, 13, 14; -
в восьмеричной системе: 0, 1, 2, 3,
4, 5, 6, 7, 10,
11.
Перевод дробной части из десятичной системы
Во время перевода дробной части часто случается ситуация, когда конечная десятичная дробь превращается в бесконечную. Поэтому обычно при переводе указывается точность, с которой необходимо переводить.
Перевод осуществляется путём последовательного умножения дробной части на основание системы счисления. Целая часть при этом откидывается и входит в состав дроби.
0.62510 → X2
0.625 * 2 = 1.250 (1) 0.25 * 2 = 0.5 (0) 0.5 * 2 = 1.0 (1)
0 – дальнейшее умножение будет давать только нули
Собираем сверху вниз, получаем 0.101
0.310 → X2 0.3 * 2 = 0.6 (0) 0.6 * 2 = 1.2 (1) 0.2 * 2 = 0.4 (0) 0.4 * 2 = 0.8 (0) 0.8 * 2 = 1.6 (1) 0.6 * 2 = 1.2 (1)
0.2 … получим периодическую дробь
Собираем, получаем 0.0100110011001… = 0.0(1001)
0.64510 → X5 0.645 * 5 = 3.225 (3) 0.255 * 5 = 1.275 (1) 0.275 * 5 = 1.375 (1) 0.375 * 5 = 1.875 (1) 0.875 * 5 = 4.375 (4) 0.375 * 5 = 1.875 (1) …
0.3111414… = 0.311(14)
Системы счисления. Перевод из одной системы в другую.
1. Порядковый счет в различных системах счисления.
В современной жизни мы используем позиционные системы счисления, то есть системы, в которых число, обозначаемое цифрой, зависит от положения цифры в записи числа. Поэтому в дальнейшем мы будем говорить только о них, опуская термин «позиционные».
Для того чтобы научиться переводить числа из одной системы в другую, поймем, как происходит последовательная запись чисел на примере десятичной системы.
Поскольку у нас десятичная система счисления, мы имеем 10 символов (цифр) для построения чисел. Начинаем порядковый счет: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Цифры закончились. Мы увеличиваем разрядность числа и обнуляем младший разряд: 10. Затем опять увеличиваем младший разряд, пока не закончатся все цифры: 11, 12, 13, 14, 15, 16, 17, 18, 19. Увеличиваем старший разряд на 1 и обнуляем младший: 20. Когда мы используем все цифры для обоих разрядов (получим число 99), опять увеличиваем разрядность числа и обнуляем имеющиеся разряды: 100. И так далее.
Попробуем сделать то же самое в 2-ной, 3-ной и 5-ной системах (введем обозначение для 2-ной системы, для 3-ной и т.д.):
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 10 | 3 |
4 | 100 | 11 | 4 |
5 | 101 | 12 | 10 |
6 | 110 | 20 | 11 |
7 | 111 | 21 | 12 |
8 | 1000 | 22 | 13 |
9 | 1001 | 100 | 14 |
10 | 1010 | 101 | 20 |
11 | 1011 | 102 | 21 |
12 | 1100 | 110 | 22 |
13 | 1101 | 111 | 23 |
14 | 1110 | 112 | 24 |
15 | 1111 | 120 | 30 |
Если система счисления имеет основание больше 10, то нам придется вводить дополнительные символы, принято вводить буквы латинского алфавита. Например, для 12-ричной системы кроме десяти цифр нам понадобятся две буквы ( и ):
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | |
11 | |
12 | 10 |
13 | 11 |
14 | 12 |
15 | 13 |
2.Перевод из десятичной системы счисления в любую другую.
Чтобы перевести целое положительное десятичное число в систему счисления с другим основанием, нужно это число разделить на основание. Полученное частное снова разделить на основание, и дальше до тех пор, пока частное не окажется меньше основания. В результате записать в одну строку последнее частное и все остатки, начиная с последнего.
Пример 1. Переведем десятичное число 46 в двоичную систему счисления.
Пример 2. Переведем десятичное число 672 в восьмеричную систему счисления.
Пример 3. Переведем десятичное число 934 в шестнадцатеричную систему счисления.
3. Перевод из любой системы счисления в десятичную.
Для того, чтобы научиться переводить числа из любой другой системы в десятичную, проанализируем привычную нам запись десятичного числа.
Например, десятичное число 325 – это 5 единиц, 2 десятка и 3 сотни, т.е.
Точно так же обстоит дело и в других системах счисления, только умножать будем не на 10, 100 и пр., а на степени основания системы счисления. Для примера возьмем число 1201 в троичной системе счисления. Пронумеруем разряды справа налево начиная с нуля и представим наше число как сумму произведений цифры на тройку в степени разряда числа:
Это и есть десятичная запись нашего числа, т.е.
Пример 4. Переведем в десятичную систему счисления восьмеричное число 511.
Пример 5. Переведем в десятичную систему счисления шестнадцатеричное число 1151.
4. Перевод из двоичной системы в систему с основанием «степень двойки» (4, 8, 16 и т.д.).
Для преобразования двоичного числа в число с основанием «степень двойки» необходимо двоичную последовательность разбить на группы по количеству цифр равному степени справа налево и каждую группу заменить соответствующей цифрой новой системы счисления.
Например, Переведем двоичное 1100001111010110 число в восьмеричную систему. Для этого разобьем его на группы по 3 символа начиная справа (т.к. ), а затем воспользуемся таблицей соответствия и заменим каждую группу на новую цифру:
Таблицу соответствия мы научились строить в п.1.
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
Т.е.
Пример 6. Переведем двоичное 1100001111010110 число в шестнадцатеричную систему.
1 | 1 |
10 | 2 |
11 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | A |
1011 | B |
1100 | C |
1101 | D |
1110 | E |
1111 | F |
5.Перевод из системы с основанием «степень двойки» (4, 8, 16 и т.д.) в двоичную.
Этот перевод аналогичен предыдущему, выполненному в обратную сторону: каждую цифру мы заменяем группой цифр в двоичной системе из таблицы соответствия.
Пример 7. Переведем шестнадцатеричное число С3A6 в двоичную систему счисления.
Для этого каждую цифру числа заменим группой из 4 цифр (т.к. ) из таблицы соответствия, дополнив при необходимости группу нулями вначале:
Примечания
- Попова Ольга Владимировна. .
-
Sanchez, Julio & Canton, Maria P. (2007), Microcontroller programming: the microchip PIC, Boca Raton, Florida: CRC Press, с. 37, ISBN 0-8493-7189-9
- W. S. Anglin and J. Lambek, The Heritage of Thales, Springer, 1995, ISBN 0-387-94544-X
- Ordish George, Hyams, Edward. The last of the Incas: the rise and fall of an American empire. — New York: Barnes & Noble, 1996. — С. 80. — ISBN 0-88029-595-3.
- .
- Bacon, Francis, , vol. 6, London, с. Chapter 1, http://home.hiwaay.net/~paul/bacon/advancement/book6ch1.html>
- Aiton, Eric J. (1985), Leibniz: A Biography, Taylor & Francis, с. 245–8, ISBN 0-85274-470-6
История
Полный набор из 8 триграмм и 64 гексаграмм, аналог 3-битных и 6-битных цифр, был известен в древнем Китае в классических текстах книги Перемен. Порядок гексаграмм в книге Перемен, расположенных в соответствии со значениями соответствующих двоичных цифр (от 0 до 63), и метод их получения был разработан китайским учёным и философом Шао Юн в XI веке. Однако нет доказательств, свидетельствующих о том, что Шао Юн понимал правила двоичной арифметики, располагая двухсимвольные кортежи в лексикографическом порядке.
Индийский математик Пингала (200 год до н. э.) разработал математические основы для описания поэзии с использованием первого известного применения двоичной системы счисления.
Прообразом баз данных, широко использовавшихся в Центральных Андах (Перу, Боливия) в государственных и общественных целях в I—II тысячелетии н. э., была узелковая письменность Инков — кипу, состоявшая как из числовых записей десятичной системы, так и не числовых записей в двоичной системе кодирования. В кипу применялись первичные и дополнительные ключи, позиционные числа, кодирование цветом и образование серий повторяющихся данных. Кипу впервые в истории человечества использовалось для применения такого способа ведения бухгалтерского учёта, как двойная запись.
Наборы, представляющие собой комбинации двоичных цифр, использовались африканцами в традиционных гаданиях (таких как Ифа) наряду со средневековой геомантией.
В 1605 году Френсис Бэкон описал систему, буквы алфавита которой могут быть сведены к последовательностям двоичных цифр, которые в свою очередь могут быть закодированы как едва заметные изменения шрифта в любых случайных текстах. Важным шагом в становлении общей теории двоичного кодирования является замечание о том, что указанный метод может быть использован применительно к любым объектам (cм. Шифр Бэкона).
Современная двоичная система была полностью описана Лейбницем в XVII веке в работе Explication de l’Arithmétique Binaire. В системе счисления Лейбница были использованы цифры 0 и 1, как и в современной двоичной системе. Как человек, увлекающийся китайской культурой, Лейбниц знал о книге Перемен и заметил, что гексаграммы соответствуют двоичным числам от 0 до 111111. Он восхищался тем, что это отображение является свидетельством крупных китайских достижений в философской математике того времени.
В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике, которая в настоящее время известна как Булева алгебра или алгебра логики. Его логическому исчислению было суждено сыграть важную роль в разработке современных цифровых электронных схем.
В 1937 году Клод Шеннон представил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в MIT, в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника.
В ноябре 1937 года Джордж Штибиц, впоследствии работавший в Bell Labs, создал на базе реле компьютер «Model K» (от англ. «Kitchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами. Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа. Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман, Джон Мокли и Норберт Винер, впоследствии писавшие об этом в своих мемуарах.
4.4. Почему люди пользуются десятичной системой, а компьютеры двоичной?
Люди предпочитают десятичную систему, вероятно, потому, что с древних времен
считали по пальцам, а пальцев у людей по десять на руках и ногах. Не всегда
и не везде люди пользуются десятичной системой счисления. В Китае, например,
долгое время пользовались пятеричной системой счисления.
А компьютеры используют двоичную систему потому, что она имеет ряд преимуществ
перед другими системами:
-
для ее реализации нужны технические устройства с двумя устойчивыми состояниями
(есть ток нет тока, намагничен не намагничен и т.п.), а не, например,
с десятью, как в десятичной; -
представление информации посредством только двух состояний надежно
и помехоустойчиво; -
возможно применение аппарата булевой алгебры для выполнения логических
преобразований информации; - двоичная арифметика намного проще десятичной.
быстрый рост числа разрядов
4.10. Как производятся арифметические операции в позиционных системах счисления?
Рассмотрим основные арифметические операции: сложение, вычитание, умножение
и деление. Правила выполнения этих операций в десятичной системе хорошо
известны это сложение, вычитание, умножение столбиком и
деление углом. Эти правила применимы и ко всем другим позиционным системам
счисления. Только таблицами сложения и умножения надо пользоваться особыми
для каждой системы.
Таблицы сложения легко составить, используя Правило Счета.
Сложение в двоичной системе | Сложение в восьмеричной системе |
Сложение в шестнадцатиричной системе
При сложении цифры суммируются по разрядам, и если при этом возникает
избыток, то он переносится влево.
Пример 1. Сложим числа 15 и 6 в
различных системах счисления.
Шестнадцатеричная: F16+616 |
Ответ: 15+6 = 2110 = 101012 = 258 = 1516. Проверка. Преобразуем полученные суммы к десятичному виду: 101012 = 24 + 22 + 2 = 16+4+1=21, 258 = 2. 81 + 5. 8 = 16 + 5 = 21, 1516 = 1. 161 + 5. 16 = 16+5 = 21. |
Пример 2.
Шестнадцатеричная: F16+716+316 |
Ответ: 5+7+3 = 2510 = 110012 = 318 = 1916. Проверка: 110012 = 24 + 23 + 2 = 16+8+1=25, 318 = 3. 81 + 1. 8 = 24 + 1 = 25, 1916 = 1. 161 + 9. 16 = 16+9 = 25. |
Пример 3.
Ответ: 141,5 + 59,75 = 201,2510 = 11001001,012
= 311,28 = C9,416Проверка. Преобразуем полученные суммы к десятичному виду:
11001001,012 = 27 + 26 + 23
+ 2 + 2-2 = 201,25
311,28 = 3. 82 + 181 + 1. 8
+ 2. 8-1 = 201,25
C9,416 = 12. 161 + 9. 16 + 4. 16-1
= 201,25
Пример 4. 2816Пример 5.2816
Пример 6.
Ответ: 201,2510 — 59,7510 = 141,510
= 10001101,12 = 215,48 = 8D,816.
Проверка. Преобразуем полученные разности к десятичному виду:
10001101,12 = 27 + 23 + 22
+ 2 + 2-1 = 141,5;
215,48 = 2. 82 + 1. 81 + 5. 8
+ 4. 8-1 = 141,5;
8D,816 = 8. 161 + D. 16 + 8. 16-1
= 141,5.
Выполняя умножение многозначных чисел в различных позиционных системах
счисления, можно использовать обычный алгоритм перемножения чисел в столбик,
но при этом результаты перемножения и сложения однозначных чисел необходимо
заимствовать из соответствующих рассматриваемой системе таблиц умножения
и сложения.
Умножение в двоичной системе |
Умножение в восьмеричной системе
|
Пример 7.
Ответ: 5. 6 = 3010 = 111102 = 368.
Проверка. Преобразуем полученные произведения к десятичному виду:
111102 = 24 + 23 + 22 +
21 = 30;
368 = 381 + 68 = 30.
Пример 8. Перемножим числа 115 и 51.
Ответ: 115. 51 = 586510 = 10110111010012
= 133518.
Проверка. Преобразуем полученные произведения к десятичному виду:
10110111010012 = 212 + 210 + 29
+ 27 + 26 + 25 + 23 + 2
= 5865;
133518 = 1. 84 + 3. 83 + 3. 82
+ 5. 81 + 1. 8 = 5865.
Пример 9.
Ответ: 30 : 6 = 510 = 1012 = 58.
Пример 10. Разделим число 5865 на
число 115.
Восьмеричная: 133518 :1638
Ответ: 5865 : 115 = 5110 = 1100112 = 638.
Проверка. Преобразуем полученные частные к десятичному виду:
1100112 = 25 + 24 + 21
+ 2 = 51; 638 = 6. 81 + 3. 8
= 51.
Пример 11. Разделим число 35 на
число 14.
Восьмеричная: 438 : 168
Ответ: 35 : 14 = 2,510 = 10,12 = 2,48.
Проверка. Преобразуем полученные частные к десятичному виду:
10,12 = 21 + 2 -1 = 2,5;
2,48 = 2. 8 + 4. 8-1 = 2,5.
4.14. Как компьютер выполняет арифметические действия над нормализованными числами?
К началу выполнения арифметического действия операнды операции помещаются
в соответствующие регистры АЛУ.
При сложении и вычитании сначала производится подготовительная операция,
называемая выравниванием порядков.
В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу. |
В результате выравнивания порядков одноименные разряды чисел оказываются
расположенными в соответствующих разрядах обоих регистров, после чего
мантиссы складываются или вычитаются. В случае необходимости полученный результат нормализуется путем сдвига
мантиссы результата влево. После каждого сдвига влево порядок результата
уменьшается на единицу.
Пример 1. Сложить двоичные нормализованные числа 0.10111 . 2-1
и 0.11011 . 210. Разность порядков слагаемых здесь равна трем, поэтому
перед сложением мантисса первого числа сдвигается на три разряда вправо:
Пример 2. Выполнить вычитание двоичных нормализованных чисел 0.10101 . 210
и 0.11101 . 21. Разность порядков уменьшаемого и вычитаемого здесь
равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на
один разряд вправо:
Результат получился не нормализованным, поэтому его мантисса
сдвигается влево на два разряда с соответствующим уменьшением порядка
на две единицы: 0.1101 . 2.
При умножении двух нормализованных чисел их порядки складываются, а мантиссы перемножаются. |
Пример 3. Выполнить умножение двоичных нормализованных чисел:
2(101+11) = 0.100000101 . 21000.
При делении двух нормализованных чисел из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае необходимости полученный результат нормализуется. |
Пример 4. Выполнить деление двоичных нормализованных чисел:
. 2(100-11) = 1.1 . 21 = 0.11 . 210.
Использование представления чисел с плавающей точкой существенно
усложняет схему арифметико-логического устройства.
Особенности двоичной арифметики
Вся двоичная СС основана на применении только двух символов, которые очень точно совпадают с особенностями цифровой схемы. Каждый из символов отвечает за определённое действие, которое зачастую подразумевает два состояния:
- наличие отверстия или его отсутствие, к примеру, перфокарты или перфоленты;
- на магнитных носителях отвечает за состояние намагничивания или размагничивания;
- по уровню сигнала, высокий или низкий.
В науке, в которой применяется СС, введена определённая терминология, суть ее состоит в следующем:
- Бит – двоичный разряд, который состоит из двух составляющих, несущих в себе определённый смысл. Размещённый слева, определяется как старший и является приоритетным, а справа – младшим, являющийся менее весомым.
- Байт – это единица, которая состоит из восьми битов.
Многие модули воспринимают и обрабатывают информацию порциями или словами. Каждое слово имеет разный вес и может состоять из 8-ми, 16-ти или 32-х битов.
Примечания
-
Sanchez, Julio & Canton, Maria P. (2007), Microcontroller programming: the microchip PIC, Boca Raton, Florida: CRC Press, с. 37, ISBN 0-8493-7189-9
- W. S. Anglin and J. Lambek, The Heritage of Thales, Springer, 1995, ISBN 0-387-94544-X
- Ordish George, Hyams, Edward. The last of the Incas: the rise and fall of an American empire. — New York: Barnes & Noble, 1996. — С. 80. — ISBN 0-88029-595-3.
- Bacon, Francis, , vol. 6, London, сс. Chapter 1, http://home.hiwaay.net/~paul/bacon/advancement/book6ch1.html>
- Aiton, Eric J. (1985), Leibniz: A Biography, Taylor & Francis, сс. 245–8, ISBN 0-85274-470-6