Иллюстрированный самоучитель по теории операционных систем

Введение в двоичную арифметику

Из курсов компьютерного ликбеза известно, что современные компьютеры оперируют числовыми данными в двоичной системе счисления, а нечисловые данные (текст, звук, изображение) так или иначе переводят в цифровую форму (оцифровывают).

В силу аппаратных ограничений процессор оперирует числами фиксированной разрядности. Количество двоичных разрядов основного арифметико-логического устройства (АЛУ) называют разрядностью процессора (впрочем, ниже мы увидим примеры, когда под разрядностью процессора подразумевается и нечто другое). Процессоры современных систем коллективного пользования (z90, UltraSPARC, Alpha) имеют 64-разрядные АЛУ, хотя в эксплуатации остается еще довольно много 32-разрядных систем, таких, как System/390. Персональные компьютеры (х86, PowerPC) и серверы рабочих групп имеют 32-разрядные процессоры. Процессоры меньшей разрядности – 16-, 8 – и даже 4-разрядные – широко используются во встраиваемых приложениях.

В прошлом встречались и процессоры, разрядность которых не являлась степенью числа 2, например 36 – или 48-разрядные, но из-за сложностей переноса программного обеспечения и обмена данными между системами с некратной разрядностью такие машины постепенно вымерли.


А для такой низкой жизни были числа,
Как домашний, подъяремный скот
Потому, что все оттенки смысла
Умное число передаст

Н. Гумилев

Арифметические операции над двоичными числами осуществляются при помощи алгоритма, который в школе изучают под названием "сложение в столбик".

Таблица 1.1. Таблица сложения одноразрядных двоичных чисел.

0 + 0 = 00
0+1 =01
1+0 = 01
1 + 1 = 10

Из табл. 1.1 видно, что результат сложения двух одноразрядных чисел является двухразрядным (двузначным) числом, а результат сложения двух N-разрядных – N+1 – разрядным. Образующийся дополнительный бит называется битом переноса (carry bit).

При сложении двоичных чисел в столбик мы выписываем их друг под другом (пример 1.1). Два младших разряда мы складываем в соответствии с табл. 1.1. При сложении последующих двух разрядов мы должны учитывать не только эти разряды, но и бит переноса из младшего разряда, т. е. производить сложение в соответствии с табл. 1.2. Из этой таблицы видно, что для трех одноразрядных слагаемых все равно получается только два бита суммы, так что для работы со всеми последующими разрядами мы можем обойтись только одним битом переноса (рис. 1.1).

Таблица 1.2. Таблица сложения с учетом переноса.

0+0+0=0
0+1+0=01
1+0+0=01
0+0+1=01
1+1+0=10
1+0+1=10
0+1+1=10
1+1+1=11
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.