Двоичная система счисления

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Бинарный код»)
Перейти к: навигация, поиск
Системы счисления в культуре
Индо-арабская
Арабская
Тамильская
Бирманская
Кхмерская
Лаосская
Монгольская
Тайская
Восточноазиатские
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Алфавитные
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Эфиопская
Еврейская
Акшара-санкхья
Другие
Вавилонская
Египетская
Этрусская
Римская
Дунайская
Аттическая
Кипу
Майяская
Эгейская
Символы КППУ
Позиционные
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60
Нега-позиционная
Симметричная
Смешанные системы
Фибоначчиева
Непозиционные
Единичная (унарная)

Двоичная система счисления — позиционная система счисления с основанием 2. Благодаря непосредственной реализации в цифровых электронных схемах на логических вентилях, двоичная система используется практически во всех современных компьютерах и прочих вычислительных электронных устройствах.

Двоичная запись чисел[править | править вики-текст]

В двоичной системе счисления числа записываются с помощью двух символов (0 и 1). Чтобы не путать, в какой системе счисления записано число, его снабжают указателем справа внизу. Например, число в десятичной системе 510, в двоичной 1012. Иногда двоичное число обозначают префиксом 0b или символом & (амперсанд)[1], например 0b101 или соответственно &101.

В двоичной системе счисления (как и в других системах счисления, кроме десятичной) знаки читаются по одному. Например, число 1012 произносится «один ноль один».

Натуральные числа[править | править вики-текст]

Натуральное число, записываемое в двоичной системе счисления как (a_{n-1} a_{n-2}\dots a_{1} a_0)_2, имеет значение:

(a_{n-1} a_{n-2}\dots a_{1} a_0)_2 = \sum_{k=0}^{n-1} a_k 2^k,

где:

  • n — количество цифр (знаков) в числе,
  • a_k — цифры из множества {0,1},
  • k — порядковый номер цифры.

Отрицательные числа[править | править вики-текст]

Отрицательные двоичные числа обозначаются так же как и десятичные: знаком «−» перед числом. А именно, отрицательное целое число, записываемое в двоичной системе счисления (- a_{n-1} a_{n-2}\dots a_{1} a_0)_2, имеет величину:

(- a_{n-1} a_{n-2}\dots a_{1} a_0)_2 = - \sum_{k=0}^{n-1} a_k 2^k.

В вычислительной технике широко используется запись отрицательных двоичных чисел в дополнительном коде.

Дробные числа[править | править вики-текст]

Дробное число, записываемое в двоичной системе счисления как (a_{n-1} a_{n-2} \dots a_{1} a_{0}, a_{-1} a_{-2} \dots a_{-(m-1)} a_{-m})_2, имеет величину:

(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 — число цифр дробной части числа,
  • a_k — цифры из множества \{0,1\}.

Сложение, вычитание и умножение двоичных чисел[править | править вики-текст]

Таблица сложения

+ 0 1
0 0 1
1 1 10(перенос в старший разряд)

Таблица вычитания

- 0 1
0 0 1
1 (заём из старшего разряда) 1 0

Пример сложения «столбиком» (1410 + 510 = 1910 или 11102 + 1012 = 100112):

+ 1 1 1 0
1 0 1
1 0 0 1 1

Таблица умножения

× 0 1
0 0 0
1 0 1

Пример умножения «столбиком» (1410 * 510 = 7010 или 11102 * 1012 = 10001102):

× 1 1 1 0
1 0 1
+ 1 1 1 0
1 1 1 0
1 0 0 0 1 1 0

Преобразование чисел[править | править вики-текст]

Для преобразования из двоичной системы в десятичную используют следующую таблицу степеней основания 2:

1024 512 256 128 64 32 16 8 4 2 1

Начиная с цифры 1 все цифры умножаются на два. Точка, которая стоит после 1, называется двоичной точкой.

Преобразование двоичных чисел в десятичные[править | править вики-текст]

Допустим, дано двоичное число 1100012. Для перевода в десятичное запишите его как сумму по разрядам следующим образом:

1 * 25 + 1 * 24 + 0 * 23 + 0 * 22 + 0 * 21 + 1 * 20 = 49

То же самое чуть иначе:

1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 0 * 2 + 1 * 1 = 49

Можно записать это в виде таблицы следующим образом:

512 256 128 64 32 16 8 4 2 1
1 1 0 0 0 1
+32 +16 +0 +0 +0 +1

Двигайтесь справа налево. Под каждой двоичной единицей напишите её эквивалент в строчке ниже. Сложите получившиеся десятичные числа. Таким образом, двоичное число 1100012 равнозначно десятичному 4910.

Преобразование дробных двоичных чисел в десятичные[править | править вики-текст]

Нужно перевести число 1011010,1012 в десятичную систему. Запишем это число следующим образом:

1 * 26 + 0 * 25 + 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 + 1 * 2-1 + 0 * 2-2 + 1 * 2-3 = 90,625

То же самое чуть иначе:

1 * 64 + 0 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 + 1 * 0,5 + 0 * 0,25 + 1 * 0,125 = 90,625

Или по таблице:

64 32 16 8 4 2 1   0.5 0.25 0.125
1 0 1 1 0 1 0 , 1 0 1
+64 +0 +16 +8 +0 +2 +0   +0.5 +0 +0.125

Преобразование методом Горнера[править | править вики-текст]

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

Например, двоичное число 10110112 переводится в десятичную систему так:

0*2 + 1 = 1
1*2 + 0 = 2
2*2 + 1 = 5
5*2 + 1 = 11
11*2 + 0 = 22
22*2 + 1 = 45
45*2 + 1 = 91

То есть в десятичной системе это число будет записано как 91.

Перевод дробной части чисел методом Горнера[править | править вики-текст]

Цифры берутся из числа справа налево и делятся на основу системы счисления (2).

Например 0,11012

(0 + 1)/2 = 0,5
(0,5 + 0)/2 = 0,25
(0,25 + 1)/2 = 0,625
(0,625 + 1)/2 = 0,8125

Ответ: 0,11012= 0,812510

Преобразование десятичных чисел в двоичные[править | править вики-текст]

Допустим, нам нужно перевести число 19 в двоичное. Вы можете воспользоваться следующей процедурой :

19 /2 = 9 с остатком 1
9 /2 = 4 c остатком 1
4 /2 = 2 без остатка 0
2 /2 = 1 без остатка 0
1 /2 = 0 с остатком 1

Итак, мы делим каждое частное на 2 и записываем остаток в конец двоичной записи. Продолжаем деление до тех пор, пока в частном не будет 0. Результат записываем справа налево. То есть нижняя цифра (1) будет самой левой и т.д. В результате получаем число 19 в двоичной записи: 10011.

Преобразование дробных десятичных чисел в двоичные[править | править вики-текст]

Если в исходном числе есть целая часть, то она преобразуется отдельно от дробной. Перевод дробного числа из десятичной системы счисления в двоичную осуществляется по следующему алгоритму:

  • Дробь умножается на основание двоичной системы счисления (2);
  • В полученном произведении выделяется целая часть, которая принимается в качестве старшего разряда числа в двоичной системе счисления;
  • Алгоритм завершается, если дробная часть полученного произведения равна нулю или если достигнута требуемая точность вычислений. В противном случае вычисления продолжаются над дробной частью произведения.

Пример: Требуется перевести дробное десятичное число 206,116 в дробное двоичное число.

Перевод целой части дает 20610=110011102 по ранее описанным алгоритмам. Дробную часть 0,116 умножаем на основание 2, занося целые части произведения в разряды после запятой искомого дробного двоичного числа:

0,116 • 2 = 0,232
0,232 • 2 = 0,464
0,464 • 2 = 0,928
0,928 • 2 = 1,856
0,856 • 2 = 1,712
0,712 • 2 = 1,424
0,424 • 2 = 0,848
0,848 • 2 = 1,696
0,696 • 2 = 1,392
0,392 • 2 = 0,784
и т. д.

Таким образом 0,11610 ≈ 0,00011101102

Получим: 206,11610 ≈ 11001110,00011101102

Применения[править | править вики-текст]

В цифровых устройствах[править | править вики-текст]

Двоичная система используется в цифровых устройствах, поскольку является наиболее простой и соответствует требованиям:

  • Чем меньше значений существует в системе, тем проще изготовить отдельные элементы, оперирующие этими значениями. В частности, две цифры двоичной системы счисления могут быть легко представлены многими физическими явлениями: есть ток (ток больше пороговой величины) — нет тока (ток меньше пороговой величины), индукция магнитного поля больше пороговой величины или нет (индукция магнитного поля меньше пороговой величины) и т. д.
  • Чем меньше количество состояний у элемента, тем выше помехоустойчивость и тем быстрее он может работать. Например, чтобы закодировать три состояния через величину напряжения, тока или индукции магнитного поля, потребуется ввести два пороговых значения и два компаратора, что не будет способствовать помехоустойчивости и надёжности хранения информации.[источник не указан 1620 дней]
  • Двоичная арифметика является довольно простой. Простыми являются таблицы сложения и умножения — основных действий над числами.

В цифровой электронике одному двоичному разряду в двоичной системе счисления соответствует (очевидно) один двоичный разряд двоичного регистра, то есть двоичный триггер с двумя состояниями (0,1).

В вычислительной технике широко используется запись отрицательных двоичных чисел в дополнительном коде. Например, число −510 может быть записано как −1012 но в 32-битном компьютере будет храниться как 111111111111111111111111111110112.

В английской системе мер[править | править вики-текст]

При указании линейных размеров в дюймах по традиции используют двоичные дроби, а не десятичные, например: 5¾″, 715/16″, 311/32″ и т. д.

Обобщения[править | править вики-текст]

Двоичная система счисления является комбинацией двоичной системы кодирования и показательной весовой функции с основанием равным 2. Следует отметить, что число может быть записано в двоичном коде, а система счисления при этом может быть не двоичной, а с другим основанием. Пример: двоично-десятичное кодирование, в котором десятичные цифры записываются в двоичном виде, а система счисления — десятичная.

История[править | править вики-текст]

  • В 1605 году Френсис Бэкон описал систему, буквы алфавита которой могут быть сведены к последовательностям двоичных цифр, которые в свою очередь могут быть закодированы как едва заметные изменения шрифта в любых случайных текстах. Важным шагом в становлении общей теории двоичного кодирования является замечание о том, что указанный метод может быть использован применительно к любым объектам.[8] (См. Шифр Бэкона)
  • Современная двоичная система была полностью описана Лейбницем в XVII веке в работе Explication de l’Arithmétique Binaire[9]. В системе счисления Лейбница были использованы цифры 0 и 1, как и в современной двоичной системе. Как человек, увлекающийся китайской культурой, Лейбниц знал о книге Перемен и заметил, что гексаграммы соответствуют двоичным числам от 0 до 111111. Он восхищался тем, что это отображение является свидетельством крупных китайских достижений в философской математике того времени.[10]
  • В 1937 году Клод Шеннон представил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в MIT, в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника.
  • В ноябре 1937 года Джордж Штибиц, впоследствии работавший в Bell Labs, создал на базе реле компьютер «Model K» (от англ. «Kitchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами. Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа. Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман, Джон Мокли и Норберт Винер, впоследствии писавшие об этом в своих мемуарах.

Интересные факты[править | править вики-текст]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  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. Experts 'decipher' Inca strings. Архивировано из первоисточника 18 августа 2011.
  6. Carlos Radicati di Primeglio, Gary Urton. Estudios sobre los quipus. — P. 49.
  7. Dale Buckmaster (1974). «The Incan Quipu and the Jacobsen Hypothesis». Journal of Accounting Research 12 (1): 178-181. Проверено 2009-12-24.
  8. Bacon, Francis, «The Advancement of Learning», vol. 6, London, сс. Chapter 1, <http://home.hiwaay.net/~paul/bacon/advancement/book6ch1.html> 
  9. http://www.leibniz-translations.com/binary.htm Leibniz Translation.com EXPLANATION OF BINARY ARITHMETIC
  10. Aiton, Eric J. (1985), «Leibniz: A Biography», Taylor & Francis, сс. 245–8, ISBN 0-85274-470-6 

Ссылки[править | править вики-текст]