Кто основал двоичную систему счисления. Двоичная система. Перевод целых и дробных чисел из одной системы счисления в любую другую − теория, примеры и решения

Нега-позиционная система счисления Симметричная система счисления Смешанные системы счисления Фибоначчиева система счисления Непозиционные системы счисления Единичная (унарная) система счисления Список систем счисления

Двоичная система счисления - позиционная система счисления с основанием 2.

Двоичные цифры

В этой системе счисления числа записываются с помощью двух символов (0 и 1).

История

  • Полный набор из 8 триграмм и 64 гексаграмм , аналог 3-битных и 6-битных цифр, был известен в древнем Китае в классических текстах книги Перемен . Порядок гексаграмм в книге Перемен , расположенных в соответствии со значениями соответствующих двоичных цифр (от 0 до 63), и метод их получения был разработан китайским учёным и философом Шао Юн в XI веке . Однако нет доказательств, свидетельствующих о том, что Шао Юн понимал правила двоичной арифметики, располагая двухсимвольные кортежи в лексикографическом порядке .
  • Наборы, представляющие собой комбинации двоичных цифр, использовались африканцами в традиционных гаданиях (таких как Ифа) наряду со средневековой геомантией .
  • В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике , которая в настоящее время известна как Булева алгебра или алгебра логики . Его логическому исчислению было суждено сыграть важную роль в разработке современных цифровых электронных схем.
  • В 1937 году Клод Шеннон представил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в MIT , в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника.
  • В ноябре 1937 года Джордж Штибиц , впоследствии работавший в Bell Labs , создал на базе реле компьютер «Model K» (от англ. «K itchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами . Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа . Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман , Джон Мокли и Норберт Винер , впоследствии писавшие об этом в своих мемуарах.

Запись двоичных чисел

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

Количество записываемых кодов (чисел) зависит от основания системы кодирования - c , определяется в комбинаторике и равно числу размещений с повторениями :

Количество записываемых кодов (чисел) от основания показательной функции - b не зависит.
Основание показательной функции - b определяет диапазон представляемых числами x 2,b величин и разреженность представляемых чисел на числовой оси.

Целые числа являются частными суммами степенного ряда :

в котором коэффициенты a n берутся из множества R=a{0,1} , X=2 , n=k , а верхний предел в частных суммах ограничен с до - n-1 .

Целые числа со знаком записываются в виде:

Дробные числа записываются в виде:

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

Сложение, вычитание и умножение двоичных чисел

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

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

Пример умножения «столбиком» (14 × 5 = 70):

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

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

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

.

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

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

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

Преобразование методом Горнера

Для того, чтобы преобразовывать числа из двоичной в десятичную систему данным методом, надо суммировать цифры слева направо, умножая ранее полученный результат на основу системы (в данном случае 2). Например, двоичное число 1011011 переводится в десятичную систему так: 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. Или число 101111 переводится в десятичную систему так: 0*2+1 =1 >> 1*2+0 =2 >> 2*2+1 =5 >> 5*2+1 =11 >> 11*2+1 =23 >> 23*2+1 =47 То есть в десятичной системе это число будет записано как 47. Перевод дробных чисел методом Горнера 1) 0,1101 2 =0,X 10 (рассматриваем цифры в обратном порядке)
1:2=0,5
0,5+0=0,5
0,5:2=0,25
0,25+1=1,25
1,25:2=0,625
0,625+1=1,625
1,625:2=0,8125
Ответ: 0,1101 2 = 0,8125 10
2) 0,356 8 =0,X 10 (рассматриваем цифры в обратном порядке)
6:8=0,75
0,75+5=5,75
5,75:8=0,71875
0,71875+3=3,71875
3,71875:8=0,46484375
Ответ: 0,356 8 =0,46484375 10
3) 0,A6E 16 =0,X 10 (рассматриваем цифры в обратном порядке)
14:16=0,875
0,875+6=6,875
6,875:16=0,4296875
0,4296875+10=10,4296875
10,4296875:16=0,65185546875
Ответ: 0,A6E 16 =0,65185546875 10

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

Допустим, нам нужно перевести число 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.

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

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

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

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

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

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

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

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

Перевод целой части дает 206 10 =11001110 2 по ранее описанным алгоритмам; дробную часть умножаем на основание 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
и т. д.
Получим: 206,116 10 =11001110,0001110110 2

Применения

В цифровых устройствах

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

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

В английской системе мер

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

  • На фронтоне здания (бывшего Вычислительного Центра СО АН СССР) в Новосибирском Академгородке присутствует двоичное число 1000110 (70 10), что соответствует дате постройки здания ( год).

См. также

  • Двоичное кодирование

Примеры чисел-степеней двойки

Степень Значение
0
1
2
3
4
5
6
7
8
9
10
11
12
13 8192
14 16384
15 32768
16
17 131072
18 262144
19 524288
20 1048576
21 2097152
22 4194304
23 8388608
24
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

Примечания

  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,

Для того чтобы в общих чертах понять, как думает компьютер, начнём с самого начала. Компьютер, по сути, – это много всякой электроники, собранной вместе в правильном порядке. А электроника (до того, как к ней добавили программу) понимает только одно: включена она или выключена, есть сигнал или нет сигнала.

Обычно «есть сигнал» обозначают единицей, а «нет сигнала» – нулём: отсюда и выражение, что «компьютер говорит на языке нулей и единиц».

Этот язык нулей и единиц называют ещё двоичной системой счисления – потому что в ней всего две цифры. Наша привычная система счисления – десятичная, в ней десять цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Но есть и множество других – восьмеричная, пятеричная, одиннадцатиричная и какая угодно ещё.

У нас с вами нет цифры «десять», правда? Число 10 состоит из двух цифр – 1 и 0.

Точно так же в пятеричной системе счисления не будет цифры «5», только 0, 1, 2, 3 и 4.

Посчитаем в пятеричной системе: 0, 1, 2, 3, 4, 10 , 11, 12, 13, 14, 20 , 21, 22, 23, 24, 30 , 31, 32, 33, 34, 40 , 41, 42, 43, 44, 100 (!!!), 101, 102 и так далее. Можно сказать, что как система счисления называется, такой цифры в ней и нет. В нашей десятичной нет цифры «10», в пятеричной нет цифры «5» (и всех, которые после неё), в восьмеричной – «8» и так далее.

А в шестнадцатиричной «16», например, есть! Поэтому нам шестнадцатиричную систему понять ещё сложнее. Давайте посчитаем в шестнадцатиричной:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10 , 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20 , 21, 22…97, 98, 99, 9A, 9B, 9C, 9D, 9E, 9F, A0 , A1, A2… F7, F8, F9, FA, FB, FC, FD, FE, FF, 100 , 101, 102, 103, 104, 105, 106, 107, 108, 109, 10A, 10B, 10C и так далее.

Двоичная система счисления, впрочем, тоже выглядит странновато для непривычного взгляда:

0, 1, 10 , 11, 100 , 101, 110, 111, 1000 , 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000 , 10001…

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

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

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

И на конфетах мы с вами будем переводить число 33 в восьмеричную систему счисления. Мы решим, что единицы – это сами конфеты, а десятки – это коробки, в каждой из которых лежит по десять конфет. Вот и получится, что 33 – это 3 коробки по 10 конфет и ещё 3 конфеты где-то сбоку.

Но мы переводим наше конфетное богатство в восьмеричную систему счисления, а это значит, что нам надо вытряхнуть все конфеты из коробочек по 10, сложить в коробочки по 8 и посмотреть, что из этого выйдет.

Из 33 получится 4 полных восьмеричных коробочки и 1 конфета останется сама по себе, так как 33/8=4 (ост. 1). То есть 33=8*4 +1 – так в восьмеричной системе счисления получается число 41 .

33 в десятичной – это 41 в восьмеричной. Это одно и то же число, просто разложенное по разным коробочкам, переведённое в разное основание. Количество конфет не поменялось, мы просто считали их по-разному!

Двоичная система, как мы уже выяснили, более странная и непривычная для человеческого взгляда. Давайте попробуем перевести 33 в двоичную – получится аж 16 коробочек по 2! И что же делать? Писать 16 как-то странно, помня о том, что в двоичной системе есть только ноль и единица, а шестёрки, которая нам нужна для шестнадцати, совершенно точно нет!

Посмотрим на нашу десятичную систему. В ней мы считаем десятки – 10, 20, 30, 40, 50, 60, 70, 80, 90 – а когда у нас набирается десять десятков, мы достаём большую коробку – 100.

У нас 100 – это 10*10, 1000 – 10*10*10, 10 000 – 10*10*10*10 и так далее. Для других систем счисления это работает точно так же! В восьмеричной системе 100=8*8, 1000=8*8*8; в двоичной 100=2*2, а 1000=2*2*2; а в шестнадцатиричной (есть и такая, помните?) 100=16*16, 1000=16*16*16.

Здесь нам пригодятся степени. Если вы их ещё не проходили в школе, не пугайтесь, степени – это очень просто. Число в степени – это число, сколько-то раз умноженное на само себя. То есть 5 3 =5*5*5 (пять в третьей степени – это пять , три раза умноженная сама на себя: 5*5*5), или 8 5 =8*8*8*8*8 (восемь в пятой степени – это восемь , пять раз умноженная на саму себя: 8*8*8*8*8).

Если мы вспомним про наши 10 000=10*10*10*10 в десятичной и 1000=8*8*8 в восьмеричной, то можно легко заметить, что сколько нулей, столько раз и умножаем на само себя. Другими словами, количество символов в числе минус один – это степень, в которую надо возвести основание. В числе 1000 у нас четыре символа, значит умножать надо 4–1 , то есть 3 раза. Если основание 10, то тысяча – это 10, три раза умноженная сама на себя: 10*10*10. Если основание 8, то тысяча – это 8, три раза умноженная сама на себя: 8*8*8.

Обо всём этом мы заговорили, пытаясь перевести 33 в двоичную систему. Просто так поделить это число на коробочки по 2 оказалось затруднительным. Но если вспомнить про наши сотни-тысячи, можно задуматься: а ведь в двоичной 100=2*2, 1000=2*2*2, 10 000=2*2*2*2 и так далее.

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

Теперь, глядя на табличку, мы видим, что 33=2 5 +1, то есть 33=2*2*2*2*2+1. Вспоминаем – сколько раз умножаем, столько будет нулей – то есть наше 2*2*2*2*2 в двоичной системе будет 100000. Не забудем оставшуюся в стороне единичку, и получится, что 33 в десятичной – это 100001 в двоичной. Правильно и красиво это записывают так:

33 10 =100001 2

Давайте (чтобы совсем хорошо понять) переведём в двоичную систему число 15.

  1. В первую очередь – смотрим в табличку.

а) Какое самое близкое к 15 число в ней? Нет, 16 не подходит, оно больше, а нам нужно самое близкое, которое меньше. Получается, что это 8, то есть 2 3 , то есть 2*2*2.

б) Восемь конфет из 15 разобрали, осталось – 15-8 – семь. Какое ближайшее число из таблички? Нет, восемь снова не подойдет, см. выше. Подойдет четыре, то есть 2 2 , то есть 2*2.

в) Четыре из семи конфет разобрали, осталось – 7-4 – три. Из таблички понимаем, что самое близкое число – 2, то есть 2 1 , то есть просто 2.

г) Три минус два – осталась 1 конфета, тут уже табличка не понадобится. В таблички такого рода можно не смотреть, когда ваш остаток меньше основания, а наша единица точно меньше двойки.

  1. Собираем всё найденное в табличке вместе: 15=2 3 + 2 2 + 2 1 + 1, оно же: 15=2*2*2 + 2*2 + 2 + 1.
  2. В двоичной системе 2*2*2=1000, 2*2=100, 2=10, помните? И у нас получается 1000+100+10+1, то есть 1111.
  3. Итак,

15 10 =1111 2

Когда просто смотришь на все эти шаги, кажется, что это просто свалка из Кучи Разных Странно Написанных Цифр . И запутаться во всём этом в первый раз – нормально. И во второй, и в третий. Просто попробуйте сделать это ещё и ещё раз – по шагам, как написано выше, и всё получится.

И наоборот это тоже работает! Например, число 11010101 2 – как из него сделать понятное десятичное? Точно так же, при помощи таблички. Пойдем с конца:

1*2 0 +0*2 1 +1*2 2 +0*2 3 +1*2 4 +0*2 5 +1*2 6 +1*2 7 =

1*1+0*2+1*4+0*8+1*16+0*32+1*64+1*128=

1+0+4+0+16+0+64+128=213

11010101 2 = 213 10

Вот примерно так компьютер понимает привычные нам числа.

Когда смотришь на это в первый раз, кажется, что это, во-первых, совершенно непостижимо, а, во-вторых, вообще не сработает. Поэтому сейчас мы с вами сделаем немножко математической магии, чтобы убедиться, что системы счисления – это такая же реальная вещь, как, например, задача «раздать пятерым детям пятнадцать печенек поровну».

Итак, возьмем пример 15+6 и решим его в разных системах счисления. Понятно, что в нашей, десятичной, получится 21. А что выйдет, например, в восьмеричной?

Переводим 15 в восьмеричную систему счисления. Первый шаг у нас при переводе в другую систему – посмотреть в табличку степеней. 8 2 – это уже 64, и в 15 оно точно уже никак не влезет, поэтому берем 8 1 – то есть просто 8. 15–8=7, оно меньше нашего основания 8, поэтому с ним мы ничего не делаем.

Итак, получилось, что 15=8 1 +7 .

В восьмеричной системе логика точно такая же, как, например, в двоичной: 8 3 – это 1000, 8 2 – это 100, 8 1 – это 10. Получилось, что:

15 10 =17 8

Напомню, наш пример был 15+6. 15 мы перевели в восьмеричную систему, как же перевести 6? Она меньше 8, нашего основания, поэтому ответ – оставить как есть. Наш пример сейчас выглядит так:

15 10 +6 10 =17 8 +6 8

Теперь мы будем складывать в восьмеричной системе счисления. Как это делается? Так же, как и в десятичной, но надо помнить, что десяток в восьмеричной системе – это восемь, а не десять, и что 8 и 9 в ней не существует.

Когда мы считаем в десятичной системе, по сути, мы делаем так:

15+6=15+5+1=20+1=21

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

17 8 +6 8 =17 8 +1 8 +5 8 =20 8 +5 8 =25 8

Почему 17+1? Потому что 7+1=8, а 8 – это наш десяток! В восьмеричной системе 7+1=10, а значит, 17+1=20. Если на этом месте ваш мозг начинает бить тревогу и рассказывать, что здесь что-то не так, вернитесь в начало статьи, где мы с вами считали в разных системах счисления.

Теперь наш пример выглядит как

15 10 +6 10 =17 8 +6 8 =25 8

Переведем 25 8 обратно в нашу систему счисления. В десятичной мы бы, увидев число 25, могли сказать, что в нём две десятки и пять единиц. В восьмеричной, как вы, наверное, уже догадались, число 25 8 – это две восьмерки и пять единиц. То есть 25 8 =2*8+5=21 10 .

Итак, наш пример целиком:

15 10 +6 10 =17 8 +6 8 =25 8 =21 10

Получилось точно такое же 21, какое вышло у нас в самом начале, когда мы посчитали 15+6 привычным нам способом в десятичной системе.

Арифметические правила не меняются от того, что мы выбрали другую систему счисления.

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

Нега-позиционная система счисления Симметричная система счисления Смешанные системы счисления Фибоначчиева система счисления Непозиционные системы счисления Единичная (унарная) система счисления Список систем счисления

Двоичная система счисления - позиционная система счисления с основанием 2.

Двоичные цифры

В этой системе счисления числа записываются с помощью двух символов (0 и 1).

История

  • Полный набор из 8 триграмм и 64 гексаграмм , аналог 3-битных и 6-битных цифр, был известен в древнем Китае в классических текстах книги Перемен . Порядок гексаграмм в книге Перемен , расположенных в соответствии со значениями соответствующих двоичных цифр (от 0 до 63), и метод их получения был разработан китайским учёным и философом Шао Юн в XI веке . Однако нет доказательств, свидетельствующих о том, что Шао Юн понимал правила двоичной арифметики, располагая двухсимвольные кортежи в лексикографическом порядке .
  • Наборы, представляющие собой комбинации двоичных цифр, использовались африканцами в традиционных гаданиях (таких как Ифа) наряду со средневековой геомантией .
  • В 1854 году английский математик Джордж Буль опубликовал знаковую работу, описывающую алгебраические системы применительно к логике , которая в настоящее время известна как Булева алгебра или алгебра логики . Его логическому исчислению было суждено сыграть важную роль в разработке современных цифровых электронных схем.
  • В 1937 году Клод Шеннон представил к защите кандидатскую диссертацию Символический анализ релейных и переключательных схем в MIT , в которой булева алгебра и двоичная арифметика были использованы применительно к электронным реле и переключателям. На диссертации Шеннона по существу основана вся современная цифровая техника.
  • В ноябре 1937 года Джордж Штибиц , впоследствии работавший в Bell Labs , создал на базе реле компьютер «Model K» (от англ. «K itchen», кухня, где производилась сборка), который выполнял двоичное сложение. В конце 1938 года Bell Labs развернула исследовательскую программу во главе со Штибицом. Созданный под его руководством компьютер, завершённый 8 января 1940 года, умел выполнять операции с комплексными числами . Во время демонстрации на конференции American Mathematical Society в Дартмутском колледже 11 сентября 1940 года Штибиц продемонстрировал возможность посылки команд удалённому калькулятору комплексных чисел по телефонной линии с использованием телетайпа . Это была первая попытка использования удалённой вычислительной машины посредством телефонной линии. Среди участников конференции, бывших свидетелями демонстрации, были Джон фон Нейман , Джон Мокли и Норберт Винер , впоследствии писавшие об этом в своих мемуарах.

Запись двоичных чисел

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

Количество записываемых кодов (чисел) зависит от основания системы кодирования - c , определяется в комбинаторике и равно числу размещений с повторениями :

Количество записываемых кодов (чисел) от основания показательной функции - b не зависит.
Основание показательной функции - b определяет диапазон представляемых числами x 2,b величин и разреженность представляемых чисел на числовой оси.

Целые числа являются частными суммами степенного ряда :

в котором коэффициенты a n берутся из множества R=a{0,1} , X=2 , n=k , а верхний предел в частных суммах ограничен с до - n-1 .

Целые числа со знаком записываются в виде:

Дробные числа записываются в виде:

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

Сложение, вычитание и умножение двоичных чисел

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

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

Пример умножения «столбиком» (14 × 5 = 70):

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

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

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

.

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

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

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

Преобразование методом Горнера

Для того, чтобы преобразовывать числа из двоичной в десятичную систему данным методом, надо суммировать цифры слева направо, умножая ранее полученный результат на основу системы (в данном случае 2). Например, двоичное число 1011011 переводится в десятичную систему так: 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. Или число 101111 переводится в десятичную систему так: 0*2+1 =1 >> 1*2+0 =2 >> 2*2+1 =5 >> 5*2+1 =11 >> 11*2+1 =23 >> 23*2+1 =47 То есть в десятичной системе это число будет записано как 47. Перевод дробных чисел методом Горнера 1) 0,1101 2 =0,X 10 (рассматриваем цифры в обратном порядке)
1:2=0,5
0,5+0=0,5
0,5:2=0,25
0,25+1=1,25
1,25:2=0,625
0,625+1=1,625
1,625:2=0,8125
Ответ: 0,1101 2 = 0,8125 10
2) 0,356 8 =0,X 10 (рассматриваем цифры в обратном порядке)
6:8=0,75
0,75+5=5,75
5,75:8=0,71875
0,71875+3=3,71875
3,71875:8=0,46484375
Ответ: 0,356 8 =0,46484375 10
3) 0,A6E 16 =0,X 10 (рассматриваем цифры в обратном порядке)
14:16=0,875
0,875+6=6,875
6,875:16=0,4296875
0,4296875+10=10,4296875
10,4296875:16=0,65185546875
Ответ: 0,A6E 16 =0,65185546875 10

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

Допустим, нам нужно перевести число 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.

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

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

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

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

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

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

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

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

Перевод целой части дает 206 10 =11001110 2 по ранее описанным алгоритмам; дробную часть умножаем на основание 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
и т. д.
Получим: 206,116 10 =11001110,0001110110 2

Применения

В цифровых устройствах

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

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

В английской системе мер

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

  • На фронтоне здания (бывшего Вычислительного Центра СО АН СССР) в Новосибирском Академгородке присутствует двоичное число 1000110 (70 10), что соответствует дате постройки здания ( год).

См. также

  • Двоичное кодирование

Примеры чисел-степеней двойки

Степень Значение
0
1
2
3
4
5
6
7
8
9
10
11
12
13 8192
14 16384
15 32768
16
17 131072
18 262144
19 524288
20 1048576
21 2097152
22 4194304
23 8388608
24
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

Примечания

  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,

Системы счисления

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

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

Например, VI = 5 + 1 = 6, а IX = 10 - 1 = 9.

В позиционных системах счисления величина, обозначаемая цифрой в записи числа, зависит от ее позиции. Количество используемых цифр называется основанием системы счисления. Место каждой цифры в числе называется позицией . Первая известная нам система, основанная на позиционном принципе - шестидесятeричная вавилонская. Цифры в ней были двух видов, одним из которых обозначались единицы, другим - десятки. Следы вавилонской системы сохранились до наших дней в способах измерения и записи величин углов и промежутков времени.

Однако наибольшую ценность для нас имеет индо-арабская десятичная система. Индийцы первыми использовали ноль для указания позиционной значимости величины в строке цифр. Эта система получила название десятичной , так как в ней десять цифр.

Для того чтобы лучше понять различие позиционной и непозиционной систем счисления, рассмотрим пример сравнения двух чисел. В позиционной системе счисления сравнение двух чисел происходит следующим образом: в рассматриваемых числах слева направо сравниваются цифры, стоящие в одинаковых позициях. Большая цифра соответствует большему значению числа. Например, для чисел 123 и 234, 1 меньше 2, поэтому число 234 больше, чем число 123. В непозиционной системе счисления это правило не действует. Примером этого может служить сравнение двух чисел IX и VI. Несмотря на то, что I меньше, чем V, число IX больше, чем число VI.

Основание системы счисления, в которой записано число, обычно обозначается нижним индексом. Например, 555 7 - число, записанное в семеричной системе счисления. Если число записано в десятичной системе, то основание, как правило, не указывается. Основание системы - это тоже число, и его мы будем указывать в обычной десятичной системе. Вообще, число x может быть представлено в системе с основанием p, как x=a n *p n +a n-1 *p n-1 + a 1 *p 1 +a 0 *p 0 , где a n ...a 0 - цифры в представлении данного числа. Так, например,

1035 10 =1*10 3 +0*10 2 +3*10 1 +5*10 0 ;

1010 2 = 1*2 3 +0*2 2 +1*2 1 +0*2 0 = 10.

Наибольший интерес при работе на ЭВМ представляют системы счисления с основаниями 2, 8 и 16. Вообще говоря, этих систем счисления обычно хватает для полноценной работы как человека, так и вычислительной машины. Однако иногда в силу различных обстоятельств все-таки приходится обращаться к другим системам счисления, например к троичной, семеричной или системе счисления по основанию 32.

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

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

Часто в информатике используют шестнадцатеричную систему, так как запись чисел в ней значительно короче записи чисел в двоичной системе. Может возникнуть вопрос: почему бы не использовать для записи очень больших чисел систему счисления, например по основанию 50? Для такой системы счисления необходимы 10 обычных цифр плюс 40 знаков, которые соответствовали бы числам от 10 до 49 и вряд ли кому-нибудь понравится работать с этими сорока знаками. Поэтому в реальной жизни системы счисления по основанию, большему 16, практически не используются.

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

Люди предпочитают десятичную систему , вероятно, потому, что с древних времен считали по пальцам. Но, не всегда и не везде люди пользовались десятичной системой счисления. В Китае, например, долгое время применялась пятеричная система счисления. В ЭВМ используют двоичную систему потому, что она имеет ряд преимуществ перед другими:

    для ее реализации используются технические элементы с двумя возможными состояниями (есть ток - нет тока, намагничен - ненамагничен);

    представление информации посредством только двух состояний надежно и помехоустойчиво ;

    возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;

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

В двоичной системе счисления всего две цифры, называемые двоичными (binary digits ). Сокращение этого наименования привело к появлению термина бит , ставшего названием разряда двоичного числа. Веса разрядов в двоичной системе изменяются по степеням двойки. Поскольку вес каждого разряда умножается либо на 0, либо на 1, то в результате значение числа определяется как сумма соответствующих значений степеней двойки. Если какой-либо разряд двоичного числа равен 1, то он называется значащим разрядом. Запись числа в двоичном виде намного длиннее записи в десятичной системе счисления .

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

Рассмотрим подробнее, как происходит процесс умножения двоичных чисел. Пусть надо умножить число 1101 на 101 (оба числа в двоичной системе счисления ). Машина делает это следующим образом: она берет число 1101 и, если первый элемент второго множителя равен 1, то она заносит его в сумму. Затем сдвигает число 1101 влево на одну позицию, получая тем самым 11010, и если, второй элемент второго множителя равен единице, то тоже заносит его в сумму. Если элемент второго множителя равен нулю, то сумма не изменяется.

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

Следует отметить, что большинство калькуляторов, реализованных на ЭВМ (в том числе и KCalc) позволяют осуществлять работу в системах счисления с основаниями 2, 8, 16 и, конечно, 10.

8-ная и 16-ная системы счисления

При наладке аппаратных средств ЭВМ или создании новой программы возникает необходимость "заглянуть внутрь" памяти машины, чтобы оценить ее текущее состояние. Но там все заполнено длинными последовательностями нулей и единиц двоичных чисел. Эти последовательности очень неудобны для восприятия человеком, привыкшим к более короткой записи десятичных чисел. Кроме того, естественные возможности человеческого мышления не позволяют оценить быстро и точно величину числа, представленного, например, комбинацией из 16 нулей и единиц.

Для облегчения восприятия двоичного числа решили разбивать его на группы разрядов, например, по три или четыре разряда. Эта идея оказалась очень удачной, так как последовательность из трех бит имеет 8 комбинаций, а последовательность из 4 бит - 16. Числа 8 и 16 являются степенями двойки, поэтому легко находить соответствие с двоичными числами. Развивая эту идею, пришли к выводу, что группы разрядов можно закодировать, сократив при этом длину последовательности знаков. Для кодировки трех битов требуется восемь цифр, поэтому взяли цифры от 0 до 7 десятичнойсистемы . Для кодировки же четырех битов необходимо шестнадцать знаков; для этого взяли 10 цифр десятичной системы и 6 букв латинского алфавита: A, B, C, D, E, F. Полученные системы, имеющие основания 8 и 16, назвали соответственно восьмеричной и шестнадцатеричной.

В восьмеричной (octal ) системе счисления используются восемь различных цифр 0, 1, 2, 3, 4, 5, 6, 7. Основание системы - 8. При записи отрицательных чисел перед последовательностью цифр ставят знак минус. Сложение, вычитание, умножение и деление чисел, представленных в восьмеричной системе, выполняются весьма просто подобно тому, как это делают в общеизвестной десятичной системе счисления.

В шестнадцатеричной (hexadecimal ) системе счисления применяется десять различных цифр и шесть первых букв латинского алфавита. При записи отрицательных чисел слева от последовательности цифр ставят знак минус. Для того чтобы при написании компьютерных программ отличить числа, записанные в шестнадцатеричной системе, от других, перед числом ставят 0x. То есть 0x11 и 11 - это разные числа. В других случаях можно указать основание системы счисления нижним индексом.

Шестнадцатеричная система счисления широко используется при задании различных оттенков цвета при кодировании графической информации (модель RGB). Так, в редакторе гипертекста Netscape Composer можно задавать цвета для фона или текста как в десятичной, так и шестнадцатеричной системах счисления.

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

Двоичная система счисления - это позиционная система счисления с основанием 2. В этой системе счисления числа записываются с помощью двух символов (1 и 0). Компьютер может различить только нулевое и единичное состояние бита, и работает компьютер в системе исчисления с основанием 2 или в двоичной системе.

Бит получил свое название от английского Binary digit (двоичная цифра).

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

Значения: 128 64 32 16 8 4 2 1 биты: 1 1 1 1 1 1 1 1

Самая правая цифра имеет весовое значение 1, следующая цифра влево - 2, следующая - 4 и т.д. Общая сумма для восьми единичных битов в данном случае составит 255:

(1+2+4+8+16+32+64+128=255)

Преобразование чисел

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

512 256 128 64 32 16 8 4 2 1

Начиная с цифры 1 все цифры умножаются на два.

    Первый вариант: Преобразование десятичных чисел в двоичные

Допустим, нам нужно перевести число 17 в двоичное. Согласно таблице степеней оснований (см. выше) 17=16+1. Значит на место значимых цифр 16 и 1 ставим 1 - остальные нули. Получаем 17=10001

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

    Второй вариант: Преобразование десятичных чисел в двоичные

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

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

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

    Первый вариант: Преобразование двоичных чисел в десятичные

В обратную сторону нужно десятичные сложить, основываясь на таблице степеней основания 2.

Арифметические действия в двоичном формате

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

0 + 0 = 0 1 + 0 = 1 1 + 1 = 10

Давайте рассмотрим использование этих правил на конкретном примере.

    Пример: сложить числа 65 и 42, представленные в двоичной системе исчисления.

В десятичной системе исчисления все осуществляется достаточно просто: 65+42=107. Для сложения этих чисел в двоичной системе исчисления нужно сначала перевести их в эту систему, например, как показано на рисунке: Таким образом, получаем: 65 в 10-ой системе = 01000001 в 2-ой системе. Обратите внимание на то, что ведущий ноль в двоичном представлении числа добавлен для дополнения двоичного представления до восьми бит. Аналогично: 42 в 10 = 00101010 в 2. Выполним сложение этих чисел:

01000001 + 00101010 -------- 01101011

Можете перепроверить и убедиться, что 01101011 в 2=107 в 10:

0*27+1*26+1*25+0*24+1*23+0*22+1*21+1*20 = 64+32+8+2+1 = 107

    Вычитание

Для выполнения операции вычитания последнее заменяется сложением, а в качестве второго слагаемого берется противоположное число. Например, пусть надо выполнить вычитание: 65 - 42. Заменим его сложением: 65 + (-42).

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

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

27 /16 = 1 с остатком 11 11 /16 = 0 c остатком 1

И того получим 1B .

Остаток от деления на 16 всегда меньше 16. Это относится ко всем системам счисления.

Рассмотрим несколько простых примеров шестнадцатеричной арифметики. Следует помнить, что после шестнадцатеричного числа F следует шестнадцатеричное 10, что равно десятичному числу 16:

6+4=A 5+8=D F+1=10 F+F=1E 10+10=20 FF+1=100