Системы счисления. позиционная система счисления двоичная

Двоичная запись чисел

В двоичной системе счисления числа записываются с помощью двух символов ( и 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 цифр (т.к. ) из таблицы соответствия, дополнив при необходимости группу нулями вначале:

Примечания

  1. Попова Ольга Владимировна. .
  2. Sanchez, Julio & Canton, Maria P. (2007), Microcontroller programming: the microchip PIC, Boca Raton, Florida: CRC Press, с. 37, ISBN 0-8493-7189-9

  3. W. S. Anglin and J. Lambek, The Heritage of Thales, Springer, 1995, ISBN 0-387-94544-X
  4. 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.
  5. .
  6. Bacon, Francis, , vol. 6, London, с. Chapter 1, http://home.hiwaay.net/~paul/bacon/advancement/book6ch1.html>
  7. 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. Выполнить умножение двоичных нормализованных чисел:

(0.11101 . 2101) . (0.1001 . 211) = (0.11101 . 0.1001) .
2(101+11) = 0.100000101 . 21000.

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

Пример 4. Выполнить деление двоичных нормализованных чисел:

0.1111 . 2100 : 0.101 . 211 = (0.1111 : 0.101)
. 2(100-11) = 1.1 . 21 = 0.11 . 210.

Использование представления чисел с плавающей точкой существенно
усложняет схему арифметико-логического устройства.

Особенности двоичной арифметики

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

  • наличие отверстия или его отсутствие, к примеру, перфокарты или перфоленты;
  • на магнитных носителях отвечает за состояние намагничивания или размагничивания;
  • по уровню сигнала, высокий или низкий.

В науке, в которой применяется СС, введена определённая терминология, суть ее состоит в следующем:

  • Бит – двоичный разряд, который состоит из двух составляющих, несущих в себе определённый смысл. Размещённый слева, определяется как старший и является приоритетным, а справа – младшим, являющийся менее весомым.
  • Байт – это единица, которая состоит из восьми битов.

Многие модули воспринимают и обрабатывают информацию порциями или словами. Каждое слово имеет разный вес и может состоять из 8-ми, 16-ти или 32-х битов.

Примечания

  1. Sanchez, Julio & Canton, Maria P. (2007), Microcontroller programming: the microchip PIC, Boca Raton, Florida: CRC Press, с. 37, ISBN 0-8493-7189-9

  2. W. S. Anglin and J. Lambek, The Heritage of Thales, Springer, 1995, ISBN 0-387-94544-X
  3. 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.
  4. Bacon, Francis, , vol. 6, London, сс. Chapter 1, http://home.hiwaay.net/~paul/bacon/advancement/book6ch1.html>
  5. Aiton, Eric J. (1985), Leibniz: A Biography, Taylor & Francis, сс. 245–8, ISBN 0-85274-470-6
Ссылка на основную публикацию