Двоичная система счисления
| Эта статья или раздел нуждается в переработке.
Пожалуйста, улучшите статью в соответствии с правилами написания статей.
|
| Системы счисления в культуре | |
|---|---|
| Индо-арабская | |
| Арабская Индийские Тамильская Бирманская |
Кхмерская Лаосская Монгольская Тайская |
| Восточноазиатские | |
| Китайская Японская Сучжоу Корейская |
Вьетнамская Счётные палочки |
| Алфавитные | |
| Абджадия Армянская Ариабхата Кириллическая |
Греческая Эфиопская Еврейская Акшара-санкхья |
| Другие | |
| Вавилонская Египетская Этрусская Римская |
Аттическая Кипу Майская |
| Позиционные | |
| 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 26, 27, 32, 36, 60 | |
| Нега-позиционная | |
| Симметричная | |
| Смешанные системы | |
| Фибоначчиева | |
| Непозиционные | |
| Единичная (унарная) | |
| Список систем счисления | |
Двоичная система счисления — позиционная система счисления с основанием 2.
Содержание |
Двоичные цифры [править]
В этой системе счисления числа записываются с помощью двух символов (0 и 1). Чтобы не путать в какой системе счисления записано число его снабжают указателем справа внизу. Например, число в десятичной системе 510, в двоичной 1012. Иногда двоичное число обозначают префиксом 0b, например 0b101.
Произношение [править]
Во всех системах счисления кроме десятичной знаки читаются по одному. Например число 1012 произносится «один ноль один».
Отрицательные числа [править]
Отрицательные двоичные числа обозначаются так же как и десятичные: знаком «−» перед числом. Однако в вычислительной технике широко используется запись отрицательных двоичных чисел в дополнительном коде, что может вносить путаницу. Например число −510 может быть записано как −1012 но в компьютере будет храниться как 111111111111111111111111111110112.
История [править]
- Полный набор из 8 триграмм и 64 гексаграмм, аналог 3-битных и 6-битных цифр, был известен в древнем Китае в классических текстах книги Перемен. Порядок гексаграмм в книге Перемен, расположенных в соответствии со значениями соответствующих двоичных цифр (от 0 до 63), и метод их получения был разработан китайским учёным и философом Шао Юн в XI веке. Однако нет доказательств, свидетельствующих о том, что Шао Юн понимал правила двоичной арифметики, располагая двухсимвольные кортежи в лексикографическом порядке.
- Индийский математик Пингала (200 год до н. э.) разработал математические основы для описания поэзии с использованием первого известного применения двоичной системы счисления.[1][2]
- Прообразом баз данных, широко использовавшихся в Центральных Андах (Перу, Боливия) в государственных и общественных целях в I—II тысячелетии н. э., была узелковая письменность Инков — кипу, состоявшая как из числовых записей десятичной системы[3], так и не числовых записей в двоичной системе кодирования[4]. В кипу применялись первичные и дополнительные ключи, позиционные числа, кодирование цветом и образование серий повторяющихся данных[5]. Кипу впервые в истории человечества использовалось для применения такого способа ведения бухгалтерского учёта, как двойная запись[6].
- Наборы, представляющие собой комбинации двоичных цифр, использовались африканцами в традиционных гаданиях (таких как Ифа) наряду со средневековой геомантией.
- В 1605 году Френсис Бэкон описал систему, буквы алфавита которой могут быть сведены к последовательностям двоичных цифр, которые в свою очередь могут быть закодированы как едва заметные изменения шрифта в любых случайных текстах. Важным шагом в становлении общей теории двоичного кодирования является замечание о том, что указанный метод может быть использован применительно к любым объектам.[7] (См. Шифр Бэкона)
- Современная двоичная система была полностью описана Лейбницем в XVII веке в работе Explication de l’Arithmétique Binaire[8]. В системе счисления Лейбница были использованы цифры 0 и 1, как и в современной двоичной системе. Как человек, увлекающийся китайской культурой, Лейбниц знал о книге Перемен и заметил, что гексаграммы соответствуют двоичным числам от 0 до 111111. Он восхищался тем, что это отображение является свидетельством крупных китайских достижений в философской математике того времени.[9]
- В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике, которая в настоящее время известна как Булева алгебра или алгебра логики. Его логическому исчислению было суждено сыграть важную роль в разработке современных цифровых электронных схем.
- В 1937 году Клод Шеннон представил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в MIT, в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника.
- В ноябре 1937 года Джордж Штибиц, впоследствии работавший в Bell Labs, создал на базе реле компьютер «Model K» (от англ. «Kitchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами. Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа. Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман, Джон Мокли и Норберт Винер, впоследствии писавшие об этом в своих мемуарах.
Алгебраическое представление двоичных чисел [править]
Двоичная система счисления является комбинацией двоичной системы кодирования и показательной весовой функции с основанием равным 2. Положительные целые числа (без знака) записываются в виде:
где:
— представляемое число, первый индекс — основание системы кодирования (размерность множества цифр a={0,1}), второй индекс — основание весовой показательной функции b (в двоично-десятичном кодировании b=10),
— запись числа, строка цифровых знаков,
— обозначение основания системы кодирования и основания системы счисления,
— количество цифр (знаков) в числе x2,2,
— порядковый номер цифры,
— цифры числа x2,2 из множества a={0,1}, в двоичной системе счисления основание системы кодирования равно 2,
— основание показательной весовой функции, основание системы счисления,
— весовая показательная функция, создающая весовые коэффициенты.
Количество записываемых кодов (чисел) зависит от основания системы кодирования — c, определяется в комбинаторике и равно числу размещений с повторениями:
где:
— основание системы кодирования (размерность 2-х элементного множества a={0,1} из которого берутся цифры ak), n — число элементов (цифр) в числе x2,b.
Количество записываемых кодов (чисел) от основания показательной функции — b не зависит.
Основание показательной функции — b определяет диапазон представляемых числами x2,b величин и разреженность представляемых чисел на числовой оси.
Целые числа являются частными суммами степенного ряда:
в котором коэффициенты an берутся из множества R=a{0,1}, X=2, n=k, а верхний предел в частных суммах ограничен с
до — n-1.
Целые числа со знаком записываются в виде:
где:
— знак числа из множества z={+,-}, у положительных целых чисел знак зачастую опускается.
Дробные числа записываются в виде:
где:
— число цифр дробной части числа,
— весовые коэффициенты из множества
,- основание системы кодирования равно 2,
— основание показательной весовой функции, основание системы счисления.
Следует отметить, что число может быть записано в двоичном коде, а система счисления при этом может быть не двоичной, а с другим основанием. Пример: двоично-десятичное кодирование, в котором десятичные цифры записываются в двоичном виде, а система счисления — десятичная.
Сложение, вычитание и умножение двоичных чисел [править]
Таблица сложения
| + | 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:
| 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. Результат записываем справа налево. То есть нижнее число будет самым левым и.т.д. В результате получаем число 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
Применения [править]
В цифровых устройствах [править]
Двоичная система используется в цифровых устройствах, поскольку является наиболее простой и соответствует требованиям:
- Чем меньше значений существует в системе, тем проще изготовить отдельные элементы, оперирующие этими значениями. В частности, две цифры двоичной системы счисления могут быть легко представлены многими физическими явлениями: есть ток (ток больше пороговой величины) — нет тока (ток меньше пороговой величины), индукция магнитного поля больше пороговой величины или нет (индукция магнитного поля меньше пороговой величины) и т. д.
- Чем меньше количество состояний у элемента, тем выше помехоустойчивость и тем быстрее он может работать. Например, чтобы закодировать три состояния через величину напряжения, тока или индукции магнитного поля, потребуется ввести два пороговых значения и два компаратора, что не будет способствовать помехоустойчивости и надёжности хранения информации.
- Двоичная арифметика является довольно простой. Простыми являются таблицы сложения и умножения — основных действий над числами.
В цифровой электронике одному двоичному разряду в двоичной системе счисления соответствует (очевидно) один двоичный разряд двоичного регистра, то есть двоичный триггер с двумя состояниями (0,1).
В английской системе мер [править]
При указании линейных размеров в дюймах по традиции используют двоичные дроби, а не десятичные, например: 5¾″, 715/16″, 311/32″ и т. д.
Интересные факты [править]
- На фронтоне здания Института вычислительных технологий СО РАН (бывшего Вычислительного Центра СО АН СССР) в Новосибирском Академгородке присутствует двоичное число 1000110 (7010), что соответствует дате постройки здания (1970 год).
См. также [править]
- Битовые операции
- Системы счисления
- Бит
- Байт
- Единицы измерения информации
- Двоичные логические элементы
- Двоичный триггер
- Двоично-десятичный код
- Двоичное кодирование
- Азбука Морзе
Примеры чисел-степеней двойки [править]
| Степень | Значение |
|---|---|
| 0 | 1 |
| 1 | 2 |
| 2 | 4 |
| 3 | 8 |
| 4 | 16 |
| 5 | 32 |
| 6 | 64 |
| 7 | 128 |
| 8 | 256 |
| 9 | 512 |
| 10 | 1024 |
| 11 | 2048 |
| 12 | 4096 |
| 13 | 8192 |
| 14 | 16384 |
| 15 | 32768 |
| 16 | 65536 |
| 17 | 131072 |
| 18 | 262144 |
| 19 | 524288 |
| 20 | 1048576 |
| 21 | 2097152 |
| 22 | 4194304 |
| 23 | 8388608 |
| 24 | 16777216 |
| 25 | 33554432 |
| 26 | 67108864 |
| 27 | 134217728 |
| 28 | 268435456 |
| 29 | 536870912 |
| 30 | 1073741824 |
| 31 | 2147483648 |
| 32 | 4294967296 |
| 33 | 8589934592 |
| 34 | 17179869184 |
| 35 | 34359738368 |
| 36 | 68719476736 |
| 37 | 137438953472 |
| 38 | 274877906944 |
| 39 | 549755813888 |
| 40 | 1099511627776 |
| 41 | 2199023255552 |
| 42 | 4398046511104 |
| 43 | 8796093022208 |
| 44 | 17592186044416 |
| 45 | 35184372088832 |
| 46 | 70368744177664 |
| 47 | 140737488355328 |
| 48 | 281474976710656 |
| 49 | 562949953421312 |
| 50 | 1125899906842624 |
| 51 | 2251799813685248 |
Примечания [править]
- ↑ 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
- ↑ Experts 'decipher' Inca strings. Архивировано из первоисточника 18 августа 2011.
- ↑ Carlos Radicati di Primeglio, Gary Urton Estudios sobre los quipus. — P. 49.
- ↑ Dale Buckmaster (1974). «The Incan Quipu and the Jacobsen Hypothesis». Journal of Accounting Research 12 (1): 178-181. Проверено 2009-12-24.
- ↑ Bacon, Francis, «The Advancement of Learning», vol. 6, London, сс. Chapter 1, <http://home.hiwaay.net/~paul/bacon/advancement/book6ch1.html>
- ↑ http://www.leibniz-translations.com/binary.htm Leibniz Translation.com EXPLANATION OF BINARY ARITHMETIC
- ↑ Aiton, Eric J. (1985), «Leibniz: A Biography», Taylor & Francis, сс. 245–8, ISBN 0-85274-470-6
Ссылки [править]
- Учебное пособие «Арифметические основы ЭВМ и систем». Часть 1. Системы счисления
- Hexadecimal Decimal Binary Octal Converter for programmers



— представляемое число, первый индекс —
— запись числа, строка цифровых знаков,
— обозначение основания системы кодирования и основания системы счисления,
— количество
— порядковый номер цифры,
— цифры числа x2,2 из множества a={0,1}, в двоичной системе счисления основание системы кодирования равно 2,
— основание показательной весовой функции, основание системы счисления,
— весовая 
— 

— знак числа из множества z={+,-}, у положительных целых чисел знак зачастую опускается.
— число цифр дробной части числа,
,