stringtranslate.com

Двоичное число

Двоичное число — это число , выраженное в системе счисления по основанию -2 или в двоичной системе счисления , метод математического выражения, в котором используются только два символа: обычно «0» ( ноль ) и «1» ( один ).

Система счисления с основанием 2 представляет собой позиционную систему счисления с основанием 2 . Каждая цифра называется битом или двоичной цифрой. Из-за своей простой реализации в цифровых электронных схемах с использованием логических элементов двоичная система используется почти всеми современными компьютерами и компьютерными устройствами в качестве предпочтительной системы использования по сравнению с различными другими человеческими методами связи из-за простоты язык и помехоустойчивость в физической реализации. [1]

Отрицательные числа обычно представляются в двоичном формате с использованием дополнения до двух .

История

Современная двоичная система счисления изучалась в Европе в 16-17 веках Томасом Харриотом , Хуаном Карамуэлем-и-Лобковицем и Готфридом Лейбницем . Однако системы, связанные с двоичными числами, появились раньше во многих культурах, включая древний Египет, Китай и Индию. Лейбниц был особенно вдохновлен китайским «И Цзин» .

Египет

Считается, что арифметические значения были представлены частями Ока Гора.

Писцы Древнего Египта использовали две разные системы для своих дробей: египетские дроби (не связанные с двоичной системой счисления) и дроби Глаза Гора (названные так потому, что многие историки математики считают, что символы, используемые для этой системы, можно было расположить так, чтобы они образовывали глаз Гора , хотя это оспаривается). [2] Дроби Глаза Гора — это двоичная система счисления дробных количеств зерна, жидкостей или других мер, в которой доля хеката выражается как сумма двоичных дробей 1/2, 1/4, 1/. 8, 1/16, 1/32 и 1/64. Ранние формы этой системы можно найти в документах Пятой династии Египта , примерно 2400 г. до н.э., а ее полностью развитая иероглифическая форма датируется девятнадцатой династией Египта , примерно 1200 г. до н.э. [3]

Метод умножения в Древнем Египте также тесно связан с двоичными числами. В этом методе умножение одного числа на второе выполняется с помощью последовательности шагов, в которых значение (первоначально первое из двух чисел) либо удваивается, либо к нему снова добавляется первое число; Порядок выполнения этих шагов определяется двоичным представлением второго числа. Использование этого метода можно увидеть, например, в Математическом папирусе Ринда , датируемом примерно 1650 годом до нашей эры. [4]

Китай

Даосский багуа

« И Цзин» датируется 9 веком до нашей эры в Китае. [5] Двоичная система счисления в И Цзин используется для интерпретации четвертичной техники гадания . [6]

В его основе лежит даосская двойственность Инь и Ян . [7] Восемь триграмм (багуа) и набор из 64 гексаграмм («шестьдесят четыре» гуа) , аналогичных трехбитным и шестибитным двоичным числам, использовались, по крайней мере, еще во времена династии Чжоу в древнем Китае. . [5]

Ученый династии Сун Шао Юн (1011–1077) переставил гексаграммы в формат , напоминающий современные двоичные числа, хотя он не намеревался использовать свое расположение математически. [6] Просмотр младшего бита поверх одиночных гексаграмм в квадрате Шао Юна [8] и чтение по строкам либо снизу справа наверх слева со сплошными линиями как 0 и пунктирными линиями как 1, либо сверху слева вниз справа со сплошными линиями. линии – это 1, а прерывистые линии – 0. Гексаграммы можно интерпретировать как последовательность от 0 до 63. [9]

Индия

Индийский учёный Пингала (ок. II в. до н. э.) разработал двоичную систему описания просодии . [10] [11] Он описал метры в виде коротких и долгих слогов (последний равен по длине двум коротким слогам). [12] Они были известны как лагху (легкие) и гуру (тяжелые) слоги.

Индуистская классика Пингалы под названием «Чандахшастра» (8.23) описывает формирование матрицы, чтобы придать уникальное значение каждому метру. «Чандахшастра» буквально переводится с санскрита как наука о метрах . Двоичные представления в системе Пингалы увеличиваются вправо, а не влево, как в двоичных числах современной позиционной записи . [13] В системе Пингалы числа начинаются с единицы, а не с нуля. Четыре коротких слога «0000» являются первым шаблоном и соответствуют значению один. Числовое значение получается добавлением единицы к сумме значений мест . [14]

Другие культуры

Жители острова Мангарева во Французской Полинезии использовали гибридную двоично- десятичную систему до 1450 года. [15] Щелевые барабаны с двоичными тонами используются для кодирования сообщений по всей Африке и Азии. [7] Наборы бинарных комбинаций, подобные И Цзин, также использовались в традиционных африканских системах гадания, таких как Ифа , а также в средневековой западной геомантии . В большинстве языков коренных народов Австралии используется система с основанием 2. [16]

Западные предшественники Лейбница

В конце 13 века Рамон Лулль задался целью объяснить всю мудрость во всех отраслях человеческого знания того времени. С этой целью он разработал общий метод или «Ars Generalis», основанный на двоичных комбинациях ряда простых базовых принципов или категорий, благодаря чему его считают предшественником информатики и искусственного интеллекта. [17]

В 1605 году Фрэнсис Бэкон обсудил систему, с помощью которой буквы алфавита можно было свести к последовательностям двоичных цифр, которые затем можно было закодировать как едва заметные варианты шрифта в любом случайном тексте. [18] Что важно для общей теории двоичного кодирования, он добавил, что этот метод можно использовать с любыми объектами вообще: «при условии, что эти объекты способны различаться только в два раза; как колокола, трубы, фонари и факелы, по докладу мушкетов и любых подобных инструментов». [18] (См. шифр Бэкона .)

Джон Непер в 1617 году описал систему, которую он назвал арифметикой местоположения , предназначенную для выполнения двоичных вычислений с использованием непозиционного представления букв. Томас Харриот исследовал несколько позиционных систем счисления, в том числе двоичную, но не опубликовал свои результаты; позже они были найдены среди его бумаг. [19] Возможно, первая публикация системы в Европе была сделана Хуаном Карамуэлем-и-Лобковицем в 1700 году . [20]

Лейбниц и « И Цзин»

Готфрид Лейбниц

Лейбниц изучал двоичную нумерацию в 1679 году; его работа опубликована в его статье Explication de l'Arithmétique Binaire (опубликованной в 1703 году). Полное название статьи Лейбница переводится на английский язык как «Объяснение двоичной арифметики, в которой используются только символы 1 и 0, с некоторыми замечаниями о ее полезности и о том, какой свет она проливает на древние китайские фигуры Фу Си » . [21] Система Лейбница использует 0 и 1, как и современная двоичная система счисления. Пример двоичной системы счисления Лейбница следующий: [21]

0 0 0 1 числовое значение 2 0
0 0 1 0 числовое значение 2 1
0 1 0 0 числовое значение 2 2
1 0 0 0 числовое значение 2 3

Лейбниц интерпретировал гексаграммы И Цзин как свидетельство бинарного исчисления. [22] Будучи синофилом , Лейбниц был знаком с «И Цзин» , с восхищением отметил, как его гексаграммы соответствуют двоичным числам от 0 до 111111, и пришел к выводу, что это отображение было свидетельством крупных китайских достижений в философской математике , которой он восхищался. . Это отношение было центральной идеей его универсальной концепции языка или характеристики универсальной , популярной идеи, которой внимательно следовали его преемники, такие как Готтлоб Фреге и Джордж Буль, в формировании современной символической логики . [23] Лейбниц впервые познакомился с «И Цзин» благодаря контакту с французским иезуитом Иоахимом Буве , который посетил Китай в 1685 году в качестве миссионера. Лейбниц рассматривал гексаграммы И Цзин как подтверждение универсальности его собственных религиозных убеждений как христианина. [22] Двоичные числа занимали центральное место в теологии Лейбница. Он считал, что двоичные числа символизируют христианскую идею creatio ex nihilo или творения из ничего. [24]

[Концепция, которую] нелегко передать язычникам, — это творение ex nihilo всемогущей силой Бога. Теперь можно сказать, что ничто в мире не может лучше представить и продемонстрировать эту силу, чем происхождение чисел, как оно представлено здесь через простое и неприукрашенное представление Единицы и Ноля или Ничего.

-  Письмо Лейбница герцогу Брауншвейгскому с гексаграммами И Цзин [22]

Более поздние события

Джордж Буль

В 1854 году британский математик Джордж Буль опубликовал знаковую статью, подробно описывающую алгебраическую систему логики , которая впоследствии стала известна как булева алгебра . Его логические расчеты сыграли важную роль в разработке цифровых электронных схем. [25]

В 1937 году Клод Шеннон защитил магистерскую диссертацию в Массачусетском технологическом институте , в которой впервые в истории реализовал булеву алгебру и двоичную арифметику с использованием электронных реле и переключателей. Диссертация Шеннона, озаглавленная «Символический анализ релейных и коммутационных схем» , по сути, положила начало практическому проектированию цифровых схем . [26]

В ноябре 1937 года Джордж Стибиц , тогда работавший в Bell Labs , завершил работу над релейным компьютером, который он назвал «Модель К» (от « Кухня », где он ее собрал), который выполнял вычисления с помощью двоичного сложения. [27] В конце 1938 года Bell Labs санкционировала полноценную исследовательскую программу под руководством Стибица. Их компьютер комплексных чисел, завершенный 8 января 1940 года, был способен вычислять комплексные числа . Во время демонстрации на конференции Американского математического общества в Дартмутском колледже 11 сентября 1940 года Стибиц смог отправлять удаленные команды калькулятору комплексных чисел по телефонным линиям с помощью телетайпа . Это была первая вычислительная машина, когда-либо использовавшаяся удаленно по телефонной линии. Некоторыми участниками конференции, ставшими свидетелями демонстрации, были Джон фон Нейман , Джон Мокли и Норберт Винер , написавший об этом в своих мемуарах. [28] [29] [30]

Компьютер Z1 , который был спроектирован и построен Конрадом Цузе между 1935 и 1938 годами, использовал булеву логику и двоичные числа с плавающей запятой . [31]

Представление

Любое число может быть представлено последовательностью битов (двоичных цифр), которая, в свою очередь, может быть представлена ​​любым механизмом, способным находиться в двух взаимоисключающих состояниях. Любую из следующих строк символов можно интерпретировать как двоичное числовое значение 667:

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

Числовое значение, представленное в каждом случае, зависит от значения, присвоенного каждому символу. На заре вычислительной техники для представления двоичных значений использовались переключатели, перфорированные отверстия и перфоленты. [32] В современном компьютере числовые значения могут быть представлены двумя разными напряжениями ; на магнитном диске можно использовать магнитную полярность . Состояние «положительное», « да » или «включено» не обязательно эквивалентно числовому значению единицы; это зависит от используемой архитектуры.

В соответствии с общепринятым представлением цифр арабскими цифрами , двоичные числа обычно записываются с использованием символов 0 и 1 . При написании двоичные цифры часто имеют индексы, префиксы или суффиксы, чтобы указать их основу или систему счисления . Следующие обозначения эквивалентны:

При произношении двоичные числа обычно читаются по цифрам, чтобы отличить их от десятичных чисел. Например, двоичное число 100 произносится как один ноль ноль , а не как сто , чтобы сделать его двоичную природу явной и в целях корректности. Поскольку двоичное число 100 представляет собой число четыре, было бы неправильно называть это число сотней (слово, обозначающее совершенно другое значение или сумму). Альтернативно, двоичная цифра 100 может быть прочитана как «четыре» (правильное значение ), но это не делает явным ее двоичную природу.

Считаем в двоичном формате

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

Десятичный счет

Десятичный счет использует десять символов от 0 до 9 . Счет начинается с постепенной замены младшей значащей цифры (крайней правой цифры), которую часто называют первой цифрой . Когда доступные символы для этой позиции исчерпаны, младшая цифра сбрасывается в 0 , а следующая цифра более высокого значения (на одну позицию влево) увеличивается ( переполнение ), и возобновляется инкрементная замена младшей цифры. Этот метод сброса и переполнения повторяется для каждой значимой цифры. Подсчет происходит следующим образом:

000, 001, 002, ... 007, 008, 009 (самая правая цифра сбрасывается на ноль, а цифра слева от нее увеличивается)
0 1 0, 011, 012, ...
   ...
090, 091, 092, ... 097, 098, 099 (две крайние справа цифры сбрасываются на нули, а следующая цифра увеличивается)
1 00, 101, 102, ...

Двоичный счет

Этот счетчик показывает, как считать в двоичном формате числа от нуля до тридцати одного.
Вечеринка по угадыванию числа, на которой оно напечатано, использует биты двоичного представления числа. В файле SVG щелкните карточку, чтобы переключить ее.

Двоичный подсчет следует той же процедуре, и снова постепенная замена начинается с младшей двоичной цифры или бита (самого правого, также называемого первым битом ), за исключением того, что доступны только два символа 0 и 1 . Таким образом, после того, как бит достигает 1 в двоичном формате, приращение сбрасывает его в 0, но также вызывает приращение следующего бита слева:

0000,
000 1 , (крайний правый бит начинается сначала, а следующий бит увеличивается)
00 1 0, 0011, (два крайних правых бита начинаются сначала, а следующий бит увеличивается)
0 1 00, 0101, 0110, 0111, (три крайних правых бита начинаются сначала, а следующий бит увеличивается)
1 000, 1001, 1010, 1011, 1100, 1101, 1110, 1111...

В двоичной системе каждый бит представляет возрастающую степень 2, причем самый правый бит представляет 2 0 , следующий представляет 2 1 , затем 2 2 и так далее. Значение двоичного числа представляет собой сумму степеней 2, представленных каждым битом «1». Например, двоичное число 100101 преобразуется в десятичную форму следующим образом:

100101 2 знак равно [ ( 1 ) × 2 5 ] + [ ( 0 ) × 2 4 ] + [ ( 0 ) × 2 3 ] + [ ( 1 ) × 2 2 ] + [ ( 0 ) × 2 1 ] + [ ( 1 ) × 2 0 ]
100101 2 = [ 1 × 32 ] + [ 0 × 16 ] + [ 0 × 8 ] + [ 1 × 4 ] + [ 0 × 2 ] + [ 1 × 1 ]
100101 2 = 37 10

Фракции

Дроби в двоичной арифметике заканчиваются , только если 2 — единственный простой делитель в знаменателе . В результате 1/10 не имеет конечного двоичного представления ( 10 имеет простые делители 2 и 5 ). Это приводит к тому, что 10 × 1/10 не будет точно равно 1 в двоичной арифметике с плавающей запятой . Например, для интерпретации двоичного выражения 1/3 = .010101... это означает: 1/3 = 0 × 2 −1 + 1 × 2 −2 + 0 × 2 −3 + 1 × 2 −4. + ... = 0,3125 + ... Точное значение невозможно найти с помощью суммы конечного числа обратных степеней двойки, нули и единицы в двоичном представлении 1/3 вечно чередуются.

Двоичная арифметика

Арифметика в двоичной системе во многом похожа на арифметику в других позиционных системах счисления . С двоичными числами можно выполнять сложение, вычитание, умножение и деление.

Добавление

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

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

0 + 0 → 0
0 + 1 → 1
1 + 0 → 1
1 + 1 → 0, переносим 1 (поскольку 1 + 1 = 2 = 0 + (1 × 2 1 ) )

При сложении двух цифр «1» получается цифра «0», а в следующий столбец нужно будет добавить 1. Это похоже на то, что происходит в десятичной системе счисления, когда складываются определенные однозначные числа; если результат равен или превышает значение системы счисления (10), цифра слева увеличивается:

5 + 5 → 0, переносим 1 (поскольку 5 + 5 = 10 = 0 + (1 × 10 1 ) )
7 + 9 → 6, переносите 1 (поскольку 7 + 9 = 16 = 6 + (1 × 10 1 ) )

Это известно как перенос . Когда результат сложения превышает значение цифры, процедура заключается в том, чтобы «перенести» избыточную сумму, разделенную по системе счисления (то есть 10/10), влево, прибавив ее к следующему позиционному значению. Это правильно, поскольку следующая позиция имеет вес, больший в коэффициент, равный основанию. Перенос в двоичном формате работает так же:

 1 1 1 1 1 (несущие цифры) 0 1 1 0 1+ 1 0 1 1 1-------------= 1 0 0 1 0 0 = 36

В этом примере складываются две цифры: 01101 2 (13 10 ) и 10111 2 (23 10 ). В верхнем ряду показаны используемые биты переноса. Начиная с крайнего правого столбца, 1 + 1 = 10 2 . 1 переносится влево, а 0 записывается внизу самого правого столбца. Добавляется второй столбец справа: 1 + 0 + 1 = 10 2 снова; переносится 1, а внизу пишется 0. Третий столбец: 1 + 1 + 1 = 11 2 . На этот раз переносится 1, а в нижнем ряду пишется 1. Подобная процедура дает окончательный ответ 100100 2 (36 10 ).

Когда компьютеры должны сложить два числа, правило: x xor y = (x + y) mod 2 для любых двух битов x и y также позволяет выполнить очень быстрые вычисления.

Метод длительного переноса

Упрощением многих задач двоичного сложения является «метод длительного переноса» или «метод двоичного сложения Брукхауса». Этот метод особенно полезен, когда одно из чисел содержит длинный набор единиц. Он основан на простой предпосылке, что в двоичной системе, когда дан набор цифр, состоящий полностью из n единиц (где n — любое целое число), добавление 1 приведет к числу 1, за которым следует строка из n нулей. Эта концепция логически следует так же, как и в десятичной системе, где добавление 1 к строке из n девяток приведет к числу 1, за которым следует строка из n нулей:

 Двоично-десятичный 1 1 1 1 1 аналогично 9 9 9 9 9 + 1 + 1 ——————————— ——————————— 1 0 0 0 0 0 1 0 0 0 0 0

Такие длинные строки довольно часто встречаются в двоичной системе. Отсюда следует, что большие двоичные числа можно складывать в два простых шага без чрезмерных операций переноса. В следующем примере две цифры складываются вместе: 1 1 1 0 1 1 1 1 1 0 2 (958 10 ) и 1 0 1 0 1 1 0 0 1 1 2 (691 10 ), используя традиционный метод переноса. слева и метод длинного переноса справа:

Традиционный метод переноса Метод длительного переноса против. 1 1 1 1 1 1 1 1 (переносимые цифры) 1 ← 1 ← переносите 1 до тех пор, пока она не окажется на одну цифру дальше «строки» ниже 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 зачеркиваем «строку»,+ 1 0 1 0 1 1 0 0 1 1 + 1 0 1 0 1 1 0 0 1 1 и зачеркните прибавленную к ней цифру——————————————————————— —————————————————————= 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1

В верхнем ряду показаны используемые биты переноса. Вместо стандартного переноса из одного столбца в другой может быть добавлена ​​цифра «1» наименьшего порядка с «1» в соответствующем разряде под ней, а «1» может быть перенесена на одну цифру после конца столбца. ряд. «Использованные» цифры необходимо вычеркнуть, так как они уже добавлены. Другие длинные строки также могут быть отменены с использованием того же метода. Затем просто сложите оставшиеся цифры обычным способом. Действуя таким образом, вы получите окончательный ответ: 1 1 0 0 1 1 1 0 0 0 1 2 (1649 10 ). В нашем простом примере с использованием небольших чисел традиционный метод переноса требовал восьми операций переноса, тогда как метод длинного переноса требовал только двух, что представляет собой существенное сокращение усилий.

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

Таблица двоичного сложения похожа, но не совпадает с таблицей истинности операции логической дизъюнкции . Разница в том , что пока .

Вычитание

Вычитание работает примерно так же:

0 − 0 → 0
0 − 1 → 1, одолжить 1
1 − 0 → 1
1 − 1 → 0

Вычитание цифры «1» из цифры «0» дает цифру «1», а 1 нужно будет вычесть из следующего столбца. Это известно как заимствование . Принцип тот же, что и при переноске. Когда результат вычитания меньше 0, наименьшего возможного значения цифры, процедура состоит в том, чтобы «одолжить» дефицит, разделенный на систему счисления (то есть 10/10) слева, вычитая его из следующего позиционного числа. ценить.

 * * * * (столбцы со звездочками заимствованы из) 1 1 0 1 1 1 0− 1 0 1 1 1----------------= 1 0 1 0 1 1 1
 * (столбцы со звездочками заимствованы из) 1 0 1 1 1 1 1– 1 0 1 0 1 1----------------= 0 1 1 0 1 0 0

Вычитание положительного числа эквивалентно добавлению отрицательного числа равного абсолютного значения . Компьютеры используют знаковые представления чисел для обработки отрицательных чисел — чаще всего в виде дополнения до двух . Такие представления устраняют необходимость в отдельной операции «вычитания». Используя вычитание с дополнением до двух, можно резюмировать следующую формулу:

А - В = А + не В + 1

Умножение

Умножение в двоичном формате аналогично десятичному аналогу. Два числа A и B можно умножить на частичные произведения: для каждой цифры в B произведение этой цифры в A вычисляется и записывается в новой строке, сдвинутой влево так, чтобы ее самая правая цифра совпадала с цифрой в B , которая была использовал. Сумма всех этих частичных произведений дает окончательный результат.

Поскольку в двоичной системе только две цифры, есть только два возможных результата каждого частичного умножения:

Например, двоичные числа 1011 и 1010 умножаются следующим образом:

 1 0 1 1 ( А ) × 1 0 1 0 ( Б ) --------- 0 0 0 0 ← Соответствует самому правому «нулю» в B + 1 0 1 1 ← Соответствует следующей «единице» в B + 0 0 0 0 + 1 0 1 1 --------------- = 1 1 0 1 1 1 0

Двоичные числа также можно умножать на биты после двоичной точки :

 1 0 1 . 1 0 1 А (5,625 в десятичном формате) × 1 1 0 . 0 1 Б (6,25 в десятичном формате) ------------------- 1 . 0 1 1 0 1 ← Соответствует единице в B + 0 0 . 0 0 0 0 ← Соответствует «нулю» в B + 0 0 0 . 0 0 0 + 1 0 1 1 . 0 1 + 1 0 1 1 0 . 1 --------------------------- знак равно 1 0 0 0 1 1 . 0 0 1 0 1 (35,15625 в десятичном формате)

См. также алгоритм умножения Бута .

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

Таблица двоичного умножения аналогична таблице истинности операции логического соединения .

Разделение

Длинное деление в двоичном формате снова аналогично десятичному аналогу.

В приведенном ниже примере делитель равен 101 2 или 5 в десятичном виде, а делимое — 11011 2 или 27 в десятичном виде. Процедура такая же, как и при делении десятичной дроби в столбик ; здесь делитель 101 2 входит в первые три цифры 110 2 делимого один раз, поэтому в верхней строке записана «1». Этот результат умножается на делитель и вычитается из первых трех цифр делимого; следующая цифра («1») включается для получения новой трехзначной последовательности:

 1 ___________1 0 1 ) 1 1 0 1 1 − 1 0 1 ----- 0 0 1

Затем процедура повторяется с новой последовательностью, продолжая до тех пор, пока не будут исчерпаны цифры делимого:

 1 0 1 ___________1 0 1 ) 1 1 0 1 1 − 1 0 1 ----- 1 1 1 − 1 0 1 ----- 0 1 0

Таким образом, частное 11011 2 , разделенное на 101 2 , равно 101 2 , как показано в верхней строке, а остаток, показанный в нижней строке, равен 10 2 . В десятичной системе это соответствует тому, что 27 разделить на 5 равно 5 с остатком 2.

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

Квадратный корень

Процесс извлечения двоичного квадратного корня по цифрам такой же, как и из десятичного квадратного корня, и объясняется здесь . Пример:

 1 0 0 1 --------- √ 1010001 1 --------- 101 01 0 -------- 1001 100 0 -------- 10001 10001 10001 ------- 0

Побитовые операции

Хотя это и не связано напрямую с числовой интерпретацией двоичных символов, последовательностями битов можно манипулировать с помощью логических логических операторов . Когда строка двоичных символов обрабатывается таким образом, это называется побитовой операцией ; логические операторы AND , OR и XOR могут выполняться над соответствующими битами двух двоичных чисел, предоставленных в качестве входных данных. Логическую операцию НЕ можно выполнить над отдельными битами одного двоичного числа, предоставленного в качестве входных данных. Иногда такие операции могут использоваться в качестве арифметических сокращений, а также могут иметь другие вычислительные преимущества. Например, арифметический сдвиг двоичного числа влево эквивалентен умножению на (положительную, целую) степень 2.

Преобразование в другие системы счисления и обратно

Десятичное число в двоичное

Преобразование (357) 10 в двоичную запись приводит к (101100101)

Чтобы преобразовать целое число с основанием 10 в его эквивалент с основанием 2 (двоичный), число делится на два . Остаток — это наименее значимый бит . Частное снова делится на два; его остаток становится следующим наименее значащим битом. Этот процесс повторяется до тех пор, пока не будет достигнуто частное, равное единице. Последовательность остатков (включая последнее частное единицы) образует двоичное значение, поскольку каждый остаток должен быть либо нулем, либо единицей при делении на два. Например, (357) 10 выражается как (101100101) 2. [35]

Двоичный код в десятичный

Преобразование из основания 2 в основание 10 просто инвертирует предыдущий алгоритм. Биты двоичного числа используются один за другим, начиная со старшего (крайнего левого) бита. Начиная со значения 0, предыдущее значение удваивается, а затем добавляется следующий бит для получения следующего значения. Это можно организовать в виде таблицы с несколькими столбцами. Например, чтобы преобразовать 10010101101 2 в десятичное число:

Результат: 1197 10 . Первое приоритетное значение, равное 0, представляет собой просто начальное десятичное значение. Этот метод является применением схемы Горнера .

Дробные части числа преобразуются аналогичными методами. Они снова основаны на эквивалентности сдвига с удвоением или делением пополам.

В дробном двоичном числе, таком как 0,11010110101 2 , первая цифра равна , вторая и т. д. Таким образом, если на первом месте после десятичной дроби стоит 1, то число не меньше , и наоборот. Удвоение этого числа равно как минимум 1. Это предполагает алгоритм: несколько раз удваивайте преобразуемое число, записывайте, равен ли результат хотя бы 1, а затем выбрасывайте целую часть.

Например, в двоичном формате это:

Таким образом, повторяющаяся десятичная дробь 0,3 ... эквивалентна повторяющейся двоичной дроби 0,01 ....

Или, например, 0,1 10 в двоичном формате:

Это тоже повторяющаяся двоичная дробь 0,0 0011 ... . Может показаться неожиданным, что конечные десятичные дроби могут иметь повторяющиеся расширения в двоичном формате. Именно по этой причине многие с удивлением обнаруживают, что 1/10 +...+1/10 (сложение 10 чисел) отличается от 1 в двоичной арифметике с плавающей запятой . Фактически, единственные двоичные дроби с конечными расширениями имеют форму целого числа, разделенного на степень 2, а 1/10 - нет.

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

Другой способ преобразования из двоичного числа в десятичное, часто более быстрый для человека, знакомого с шестнадцатеричным числом , — сделать это косвенно: сначала преобразовать ( в двоичном формате) в ( в шестнадцатеричном формате), а затем преобразовать ( в шестнадцатеричном формате) в ( в десятичном формате).

Для очень больших чисел эти простые методы неэффективны, поскольку они выполняют большое количество операций умножения или деления, когда один операнд очень велик. Простой алгоритм «разделяй и властвуй» асимптотически более эффективен: данное двоичное число делится на 10 k , где k выбирается так, чтобы частное примерно равнялось остатку; затем каждая из этих частей преобразуется в десятичную, и они объединяются . Учитывая десятичное число, его можно разделить на две части примерно одинакового размера, каждая из которых преобразуется в двоичный формат, после чего первая преобразованная часть умножается на 10 k и добавляется ко второй преобразованной части, где k — количество десятичные цифры во второй, наименее значимой части перед преобразованием.

Шестнадцатеричный

Двоичный формат можно легко преобразовать в шестнадцатеричный формат и обратно. Это связано с тем, что система счисления шестнадцатеричной системы (16) является степенью системы счисления двоичной системы (2). Точнее, 16 = 2 4 , поэтому для представления одной цифры шестнадцатеричного числа требуются четыре двоичных цифры, как показано в соседней таблице.

Чтобы преобразовать шестнадцатеричное число в его двоичный эквивалент, просто замените соответствующие двоичные цифры:

16 = 0011 1010 2
Е7 16 = 1110 0111 2

Чтобы преобразовать двоичное число в его шестнадцатеричный эквивалент, разделите его на группы по четыре бита. Если количество битов не кратно четырем, просто вставьте дополнительные 0 бит слева (так называемое дополнение ). Например:

1010010 2 = 0101 0010 сгруппированы с заполнением = 52 16
11011101 2 = 1101 1101 сгруппировано = ДД 16

Чтобы преобразовать шестнадцатеричное число в его десятичный эквивалент, умножьте десятичный эквивалент каждой шестнадцатеричной цифры на соответствующую степень 16 и сложите полученные значения:

C0E7 16 = (12 × 16 3 ) + (0 × 16 2 ) + (14 × 16 1 ) + (7 × 16 0 ) = (12 × 4096) + (0 × 256) + (14 × 16) + ( 7 × 1) = 49 383 10

Восьмеричный

Двоичная система также легко преобразуется в восьмеричную систему счисления, поскольку восьмеричная система счисления использует систему счисления 8, которая является степенью двойки (а именно, 2 3 , поэтому для представления восьмеричной цифры требуется ровно три двоичных цифры). Соответствие между восьмеричными и двоичными числами такое же, как и для первых восьми цифр шестнадцатеричного числа в таблице выше. Двоичное число 000 соответствует восьмеричной цифре 0, двоичное число 111 соответствует восьмеричной цифре 7 и т. д.

Преобразование восьмеричного числа в двоичное происходит так же, как и шестнадцатеричное :

65 8 = 110 101 2
17 8 = 001 111 2

И из двоичного в восьмеричный:

101100 2 = 101 100 2 сгруппировано = 54 8
10011 2 = 010 011 2 сгруппированы с заполнением = 23 8

И от восьмеричного к десятичному:

65 8 = (6 × 8 1 ) + (5 × 8 0 ) = (6 × 8) + (5 × 1) = 53 10
127 8 = (1 × 8 2 ) + (2 × 8 1 ) + (7 × 8 0 ) = (1 × 64) + (2 × 8) + (7 × 1) = 87 10

Представление действительных чисел

Нецелые числа можно представить с помощью отрицательных степеней, которые отделяются от других цифр с помощью точки счисления (называемой десятичной точкой в ​​десятичной системе). Например, двоичное число 11.01 2 означает:

Всего 3,25 десятичных числа.

Все двоичные рациональные числа имеют завершающую двоичную цифру — двоичное представление имеет конечное число членов после точки счисления. Другие рациональные числа имеют двоичное представление, но вместо того, чтобы заканчиваться, они повторяются с конечной последовательностью цифр, повторяющейся бесконечно. Например

Явление, заключающееся в том, что двоичное представление любого рационального числа либо завершается, либо повторяется, также встречается в других системах счисления, основанных на системе счисления. См., например, объяснение в десятичном формате . Еще одним сходством является существование альтернативных представлений для любого завершающего представления, основанное на том факте, что 0,111111... является суммой геометрической прогрессии 2 -1 + 2 -2 + 2 -3 + ..., которая равна 1.

Двоичные числа, которые не оканчиваются и не повторяются, представляют собой иррациональные числа . Например,

Смотрите также

Рекомендации

  1. ^ «3.3. Двоичный файл и его преимущества — Читатель CS160» . Computerscience.chemeketa.edu . Проверено 22 мая 2022 г.
  2. ^ Робсон, Элеонора ; Стедалл, Жаклин , ред. (2009), «Миф № 2: фракции глаз Гора», Оксфордский справочник по истории математики, Oxford University Press, стр. 790, ISBN 9780199213122
  3. ^ Крисомалис, Стивен (2010), Числовая запись: сравнительная история, Cambridge University Press, стр. 42–43, ISBN 9780521878180.
  4. ^ Рудман, Питер Стром (2007), Как возникла математика: первые 50 000 лет, Prometheus Books, стр. 135–136, ISBN 9781615921768.
  5. ^ AB Эдвард Хакер; Стив Мур; Лоррейн Пацко (2002). И Цзин: Аннотированная библиография. Рутледж. п. 13. ISBN 978-0-415-93969-0.
  6. ^ аб Редмонд, Джеффри; Хон, Цзе-Ки (2014). Преподавание И Цзин . Издательство Оксфордского университета. п. 227. ИСБН 978-0-19-976681-9.
  7. ^ аб Джонатан Шектман (2003). Новаторские научные эксперименты, изобретения и открытия XVIII века. Издательство Гринвуд. п. 29. ISBN 978-0-313-32015-6.
  8. ^ Маршалл, Стив. «Последовательности гексаграмм Ицзин: квадрат Шао Юна (последовательность Фуси)» . Проверено 15 сентября 2022 г. Можно сказать, что [двоичная последовательность Фуси] — это более разумный способ представления гексаграммы в виде двоичных чисел... Доводы, если таковые имеются, которые лежат в основе последовательности [короля Вэня], неизвестны.
  9. ^ Чжунлянь, Ши; Вэньчжао, Ли; Позер, Ганс (2000). Бинарная система Лейбница и «Сяньтянь Ту» Шао Юна в книге: Das Neueste über China: GW Leibnizens Novissima Sinica von 1697: Internationales Symposium, Берлин, 4–7 октября 1997 г. Штутгарт: Franz Steiner Verlag. стр. 165–170. ISBN 3515074481.
  10. ^ Санчес, Хулио; Кантон, Мария П. (2007). Программирование микроконтроллера: микрочип PIC . Бока-Ратон, Флорида: CRC Press. п. 37. ИСБН 978-0-8493-7189-9.
  11. ^ WS Энглин и Дж. Ламбек, Наследие Фалеса , Springer, 1995, ISBN 0-387-94544-X 
  12. ^ Математика для поэтов и барабанщиков. Архивировано 16 июня 2012 г. в Wayback Machine (pdf, 145 КБ).
  13. ^ Стахов, Алексей ; Олсен, Скотт Энтони (2009). Математика гармонии: от Евклида до современной математики и информатики. Всемирная научная. ISBN 978-981-277-582-5.
  14. ^ Б. ван Нутен, «Двоичные числа в индийской древности», Журнал индийских исследований, том 21, 1993, стр. 31–50.
  15. ^ Бендер, Андреа; Беллер, Зигхард (16 декабря 2013 г.). «Мангареванское изобретение двоичных шагов для упрощения вычислений». Труды Национальной академии наук . 111 (4): 1322–1327. дои : 10.1073/pnas.1309160110 . ПМЦ 3910603 . ПМИД  24344278. 
  16. ^ Бауэрн, Клэр; Зентц, Джейсон (2012). «Разнообразие систем счисления австралийских языков». Антропологическая лингвистика . 54 (2): 133–160. ISSN  0003-5483. JSTOR  23621076.
  17. ^ (см. Bonner 2007 [1] Архивировано 3 апреля 2014 года в Wayback Machine , Fidora et al. 2011 [2] Архивировано 8 апреля 2019 года в Wayback Machine )
  18. ^ аб Бэкон, Фрэнсис (1605). «Прогресс обучения». Лондон. стр. Глава 1.
  19. ^ Ширли, Джон В. (1951). «Двоичная нумерация до Лейбница». Американский журнал физики . 19 (8): 452–454. Бибкод : 1951AmJPh..19..452S. дои : 10.1119/1.1933042.
  20. ^ Инейхен, Р. (2008). «Лейбниц, Карамуэль, Харриот и дуальная система» (PDF) . Mitteilungen der deutschen Mathematiker-Vereinigung (на немецком языке). 16 (1): 12–15. дои : 10.1515/dmvm-2008-0009. S2CID  179000299.
  21. ^ ab Лейбниц Г., Объяснение двоичной арифметики, Die Mathematische Schriften, изд. К. Герхардт, Берлин, 1879 г., т.7, стр.223; англ. перевод[3]
  22. ^ abc JEH Smith (2008). Лейбниц: Какой рационалист?: Какой рационалист? Спрингер. п. 415. ИСБН 978-1-4020-8668-7.
  23. ^ Эйтон, Эрик Дж. (1985). Лейбниц: Биография . Тейлор и Фрэнсис. стр. 245–8. ISBN 0-85274-470-6.
  24. ^ Юэнь-Тин Лай (1998). Лейбниц, Мистика и религия. Спрингер. стр. 149–150. ISBN 978-0-7923-5223-5.
  25. ^ Буль, Джордж (2009) [1854]. Исследование законов мышления, на которых основаны математические теории логики и вероятностей (Macmillan, Dover Publications, переиздано с исправлениями [1958] изд.). Нью-Йорк: Издательство Кембриджского университета. ISBN 978-1-108-00153-3.
  26. ^ Шеннон, Клод Элвуд (1940). Символический анализ релейных и коммутационных схем (Диссертация). Кембридж: Массачусетский технологический институт. hdl : 1721.1/11173.
  27. ^ "Национальный зал славы изобретателей - Джордж Р. Стибиц" . 20 августа 2008 года. Архивировано из оригинала 9 июля 2010 года . Проверено 5 июля 2010 г.
  28. ^ "Джордж Стибиц: Биография" . Факультет математики и информатики Университета Денисона. 30 апреля 2004 года . Проверено 5 июля 2010 г.
  29. ^ «Пионеры - Люди и идеи, которые изменили ситуацию - Джордж Стибиц (1904–1995)» . Керри Редшоу. 20 февраля 2006 г. Проверено 5 июля 2010 г.
  30. ^ "Джордж Роберт Стибиц - Некролог" . Ассоциация компьютерной истории Калифорнии. 6 февраля 1995 года . Проверено 5 июля 2010 г.
  31. ^ Рохас, Рауль (апрель – июнь 1997 г.). «Наследие Конрада Цузе: архитектура Z1 и Z3» (PDF) . IEEE Анналы истории вычислений . 19 (2): 5–16. дои : 10.1109/85.586067. Архивировано (PDF) из оригинала 3 июля 2022 года . Проверено 3 июля 2022 г.(12 страниц)
  32. ^ «Введение в двоичный код - Версия 1 - GCSE по информатике» . Би-би-си . Проверено 26 июня 2019 г.
  33. ^ аб Кювелер, Герд; Швох, Дитрих (2013) [1996]. Arbeitsbuch Informatik – eine praxisorientierte Einführung in die Datenverarbeitung mit Projektaufgabe (на немецком языке). Vieweg-Verlag, перепечатка: Springer-Verlag. дои : 10.1007/978-3-322-92907-5. ISBN 978-3-528-04952-2. 9783322929075.
  34. ^ аб Кювелер, Герд; Швох, Дитрих (4 октября 2007 г.). Informatik für Ingenieure und Naturwissenschaftler: PC- und Mikrocomputertechnik, Rechnernetze (на немецком языке). Том. 2 (5-е изд.). Vieweg, перепечатка: Springer-Verlag. ISBN 978-3834891914. 9783834891914.
  35. ^ «Базовая система». Архивировано из оригинала 23 октября 2017 года . Проверено 31 августа 2016 г.

Внешние ссылки