Зашифровать в бинарный код. Запись текстов двоичным кодом (Запись букв двоичным кодом). Преобразование дробных десятичных чисел в двоичные

Все символы и буквы могут быть закодированы при помощи восьми двоичных бит. Наиболее распространенными таблицами представления букв в двоичном коде являются ASCII и ANSI, их можно использовать для записи текстов в микропроцессорах. В таблицах ASCII и ANSI первые 128 символов совпадают. В этой части таблицы содержатся коды цифр, знаков препинания, латинские буквы верхнего и нижнего регистров и управляющие символы. Национальные расширения символьных таблиц и символы псевдографики содержатся в последних 128 кодах этих таблиц, поэтому русские тексты в операционных системах DOS и WINDOWS не совпадают.

При первом знакомстве с компьютерами и микропроцессорами может возникнуть вопрос — "как преобразовать текст в двоичный код?" Однако это преобразование является наиболее простым действием! Для этого нужно воспользоваться любым текстовым редактором. В том числе подойдет и простейшая программа notepad, входящая в состав операционной системы Windows. Подобные же редакторы присутствуют во всех средах программирования для языков, таких как СИ, Паскаль или Ява. Следует отметить, что наиболее распространенный текстовый редактор Word для простого преобразования текста в двоичный код не подходит. Этот тестовый редактор вводит огромное количество дополнительной информации, такой как цвет букв, наклон, подчеркивание, язык, на котором написана конкретная фраза, шрифт.

Следует отметить, что на самом деле комбинация нулей и единиц, при помощи которых кодируется текстовая информация двоичным кодом не является, т.к. биты в этом коде не подчиняются законам . Однако в Интернете поисковая фраза "представление букв в двоичном коде" является самой распространенной. В таблице 1 приведено соответствие двоичных кодов буквам латинского алфавита. Для краткости записи в этой таблице последовательность нулей и единиц представлена в десятичном и шестнадцатеричном кодах.

Таблица 1 Таблица представления латинских букв в двоичном коде (ASCII)

Десятичный код Шестнадцатеричный код Отображаемый символ Значение
0 00 NUL
1 01 (слово управления дисплеем)
2 02 (Первое передаваемое слово)
3 03 ETX (Последнее слово передачи)
4 04 EOT (конец передачи)
5 05 ENQ (инициализация)
6 06 ACK (подтверждение приема)
7 07 BEL
8 08 BS
9 09 HT (горизонтальная табуляция
10 0A LF (перевод строки)
11 0B VT (вертикальная табуляция)
12 FF (следующая страница)
13 0D CR (возврат каретки)
14 0E SO (двойная ширина)
15 0F SI (уплотненная печать)
16 10 DLE
17 11 DC1
18 12 DC2 (отмена уплотненной печати)
19 13 DC3 (готовность)
20 14 DC4 (отмена двойной ширины)
21 15 § NAC (неподтверждение приема)
22 16 SYN
23 17 ETB
24 18 CAN
25 19 EM
26 1A SUB
27 1B ESC (начало управл. послед.)
28 1C FS
29 1D GS
30 1E RS
31 1F US
32 20 Пробел
33 21 ! Восклицательный знак
34 22 « Угловая скобка
35 23 # Знак номера
36 24 $ Знак денежной единицы (доллар)
37 25 % Знак процента
38 26 & Амперсанд
39 27 " Апостроф
40 28 ( Открывающая скобка
41 29 ) Закрывающая скобка
42 2A * Звездочка
43 2B + Знак плюс
44 2C , Запятая
45 2D - Знак минус
46 2E . Точка
47 2F / Дробная черта
48 30 0 Цифра ноль
49 31 1 Цифра один
50 32 2 Цифра два
51 33 3 Цифра три
52 34 4 Цифра четыре
53 35 5 Цифра пять
54 36 6 Цифра шесть
55 37 7 Цифра семь
56 38 8 Цифра восемь
57 39 9 Цифра девять
58 3A : Двоеточие
59 3B ; Точка с запятой
60 3C < Знак меньше
61 3D = Знак равно
62 3E > Знак больше
63 3F ? Знак вопрос
64 40 @ Коммерческое эт
65 41 A Прописная латинская буква А
66 42 B Прописная латинская буква B
67 43 C Прописная латинская буква C
68 44 D Прописная латинская буква D
69 45 E Прописная латинская буква E
70 46 F Прописная латинская буква F
71 47 G Прописная латинская буква G
72 48 H Прописная латинская буква H
73 49 I Прописная латинская буква I
74 4A J Прописная латинская буква J
75 4B K Прописная латинская буква K
76 4C L Прописная латинская буква L
77 4D M Прописная латинская буква
78 4E N Прописная латинская буква N
79 4F O Прописная латинская буква O
80 50 P Прописная латинская буква P
81 51 Q Прописная латинская буква
82 52 R Прописная латинская буква R
83 53 S Прописная латинская буква S
84 54 T Прописная латинская буква T
85 55 U Прописная латинская буква U
86 56 V Прописная латинская буква V
87 57 W Прописная латинская буква W
88 58 X Прописная латинская буква X
89 59 Y Прописная латинская буква Y
90 5A Z Прописная латинская буква Z
91 5B [ Открывающая квадратная скобка
92 5C \ Обратная черта
93 5D ] Закрывающая квадратная скобка
94 5E ^ "Крышечка"
95 5 _ Символ подчеркивания
96 60 ` Апостроф
97 61 a Строчная латинская буква a
98 62 b Строчная латинская буква b
99 63 c Строчная латинская буква c
100 64 d Строчная латинская буква d
101 65 e Строчная латинская буква e
102 66 f Строчная латинская буква f
103 67 g Строчная латинская буква g
104 68 h Строчная латинская буква h
105 69 i Строчная латинская буква i
106 6A j Строчная латинская буква j
107 6B k Строчная латинская буква k
108 6C l Строчная латинская буква l
109 6D m Строчная латинская буква m
110 6E n Строчная латинская буква n
111 6F o Строчная латинская буква o
112 70 p Строчная латинская буква p
113 71 q Строчная латинская буква q
114 72 r Строчная латинская буква r
115 73 s Строчная латинская буква s
116 74 t Строчная латинская буква t
117 75 u Строчная латинская буква u
118 76 v Строчная латинская буква v
119 77 w Строчная латинская буква w
120 78 x Строчная латинская буква x
121 79 y Строчная латинская буква y
122 7A z Строчная латинская буква z
123 7B { Открывающая фигурная скобка
124 | Вертикальная черта
125 7D } Закрывающая фигурная скобка
126 7E ~ Тильда
127 7F

В классическом варианте таблицы символов ASCII нет русских букв и она состоит из 7 бит. Однако в дальнейшем эта таблица была расширена до 8 бит и в старших 128 строках появились русские буквы в двоичном коде и символы псевдографики. В общем случае во второй части размещены национальные алфавиты разных стран и русские буквы там просто один из возможных наборов (855) там может быть французская (863), немецкая (1141) или греческая (737) таблица. В таблице 2 приведен пример представления русских букв в двоичном коде.

Таблица 2. Таблица представления русских букв в двоичном коде (ASCII)

Десятичный код Шестнадцатеричный код Отображаемый символ Значение
128 80 А Прописная русская буква А
129 81 Б Прописная русская буква Б
130 82 В Прописная русская буква В
131 83 Г Прописная русская буква Г
132 84 Д Прописная русская буква Д
133 85 Е Прописная русская буква Е
134 86 Ж Прописная русская буква Ж
135 87 З Прописная русская буква З
136 88 И Прописная русская буква И
137 89 Й Прописная русская буква Й
138 8A К Прописная русская буква К
139 8B Л Прописная русская буква Л
140 8C М Прописная русская буква М
141 8D Н Прописная русская буква Н
142 8E О Прописная русская буква О
143 8F П Прописная русская буква П
144 90 Р Прописная русская буква Р
145 91 С Прописная русская буква С
146 92 Т Прописная русская буква Т
147 93 У Прописная русская буква У
148 94 Ф Прописная русская буква Ф
149 95 Х Прописная русская буква Х
150 96 Ц Прописная русская буква Ц
151 97 Ч Прописная русская буква Ч
152 98 Ш Прописная русская буква Ш
153 99 Щ Прописная русская буква Щ
154 9A Ъ Прописная русская буква Ъ
155 9B Ы Прописная русская буква Ы
156 9C Ь Прописная русская буква Ь
157 9D Э Прописная русская буква Э
158 9E Ю Прописная русская буква Ю
159 9F Я Прописная русская буква Я
160 A0 а Строчная русская буква а
161 A1 б Строчная русская буква б
162 A2 в Строчная русская буква в
163 A3 г Строчная русская буква г
164 A4 д Строчная русская буква д
165 A5 е Строчная русская буква е
166 A6 ж Строчная русская буква ж
167 A7 з Строчная русская буква з
168 A8 и Строчная русская буква и
169 A9 й Строчная русская буква й
170 AA к Строчная русская буква к
171 AB л Строчная русская буква л
172 AC м Строчная русская буква м
173 AD н Строчная русская буква н
174 AE о Строчная русская буква о
175 AF п Строчная русская буква п
176 B0
177 B1
178 B2
179 B3 Символ псевдографики
180 B4 Символ псевдографики
181 B5 Символ псевдографики
182 B6 Символ псевдографики
183 B7 Символ псевдографики
184 B8 Символ псевдографики
185 B9 Символ псевдографики
186 BA Символ псевдографики
187 BB Символ псевдографики
188 BC Символ псевдографики
189 BD Символ псевдографики
190 BE Символ псевдографики
191 BF Символ псевдографики
192 C0 Символ псевдографики
193 C1 Символ псевдографики
194 C2 Символ псевдографики
195 C3 Символ псевдографики
196 C4 Символ псевдографики
197 C5 Символ псевдографики
198 C6 Символ псевдографики
199 C7 Символ псевдографики
200 C8 Символ псевдографики
201 C9 Символ псевдографики
202 CA Символ псевдографики
203 CB Символ псевдографики
204 CC Символ псевдографики
205 CD Символ псевдографики
206 CE Символ псевдографики
207 CF Символ псевдографики
208 D0 Символ псевдографики
209 D1 Символ псевдографики
210 D2 Символ псевдографики
211 D3 Символ псевдографики
212 D4 Символ псевдографики
213 D5 Символ псевдографики
214 D6 Символ псевдографики
215 D7 Символ псевдографики
216 D8 Символ псевдографики
217 D9 Символ псевдографики
218 DA Символ псевдографики
219 DB
220 DC
221 DD
222 DE
223 DF
224 E0 р Строчная русская буква р
225 E1 с Строчная русская буква с
226 E2 т Строчная русская буква т
227 E3 у Строчная русская буква у
228 E4 ф Строчная русская буква ф
229 E5 х Строчная русская буква х
230 E6 ц Строчная русская буква ц
231 E7 ч Строчная русская буква ч
232 E8 ш Строчная русская буква ш
233 E9 щ Строчная русская буква щ
234 EA ъ Строчная русская буква ъ
235 EB ы Строчная русская буква ы
236 EC ь Строчная русская буква ь
237 ED э Строчная русская буква э
238 EE ю Строчная русская буква ю
239 EF я Строчная русская буква я
240 F0 Ё Прописная русская буква Ё
241 F1 ё Строчная русская буква ё
242 F2 Є
243 F3 є
244 F4 Ї
245 F5 Ї
246 F6 Ў
247 F7 ў
248 F8 ° Знак градуса
249 F9 Знак умножения (точка)
250 FA ·
251 FB Радикал (взятие корня)
252 FC Знак номера
253 FD ¤ Знак денежной единицы (рубль)
254 FE
255 FF

При записи текстов кроме двоичных кодов, непосредственно отображающих буквы, применяются коды, обозначающие переход на новую строку и возврат курсора (возврат каретки) на нулевую позицию строки. Эти символы обычно применяются вместе. Их двоичные коды соответствуют десятичным числам — 10 (0A) и 13 (0D). В качестве примера ниже приведен участок текста данной страницы (дамп памяти). На этом участке записан ее первый абзац. Для отображения информации в дампе памяти применен следующий формат:

  • в первой колонке записан двоичный адрес первого байта строки
  • в следующи шестнадцати колонках записаны байты, содержащиеся в текстовом файле. Для более удобного определения номера байта после восьмой колонки проведена вертикальная линия. Байты, для краткости записи, представлены в шестнадцатеричном коде.
  • в последней колонке эти же байты представлены в виде отображаемых буквенных символов
00000000: 82 E1 A5 20 E1 A8 AC A2 ¦ AE AB EB 20 A8 20 A1 E3 Все символы и бу 00000010: AA A2 EB 20 AC AE A3 E3 ¦ E2 20 A1 EB E2 EC 20 A7 квы могут быть з 00000020: A0 AA AE A4 A8 E0 AE A2 ¦ A0 AD EB 20 AF E0 A8 20 акодированы при 00000030: AF AE AC AE E9 A8 20 A2 ¦ AE E1 EC AC A8 20 A4 A2 помощи восьми дв 00000040: AE A8 E7 AD EB E5 20 E1 ¦ A8 AC A2 AE AB AE A2 2E оичных символов. 00000050: 0D 0A 8D A0 A8 A1 AE AB ¦ A5 A5 20 E0 A0 E1 AF E0 ♪◙Наиболее распр 00000060: AE E1 E2 E0 A0 AD A5 AD ¦ AD EB AC A8 20 E2 A0 A1 остраненными таб 00000070: AB A8 E6 A0 AC A8 20 EF ¦ A2 AB EF EE E2 E1 EF 20 лицами являются 00000080: E2 A0 A1 AB A8 E6 EB 20 ¦ 41 53 43 49 49 20 E1 20 таблицы ASCII с 00000090: AD A0 E6 A8 AE AD A0 AB ¦ EC AD EB AC A8 0D 0A E0 национальными♪◙р 000000A0: A0 E1 E8 A8 E0 A5 AD A8 ¦ EF AC A8 2C 20 AF E0 A8 асширениями, при 000000B0: AC A5 AD EF EE E9 A8 A5 ¦ E1 EF 20 A2 20 44 4F 53 меняющиеся в DOS 000000C0: 20 28 A8 20 AA AE E2 AE ¦ E0 EB A5 20 AC AE A6 AD (и которые можн 000000D0: AE 20 A8 E1 AF AE AB EC ¦ A7 AE A2 A0 E2 EC 20 A4 о использовать д 000000E0: AB EF 20 A7 A0 AF A8 E1 ¦ A8 0D 0A E2 A5 AA E1 E2 ля записи♪◙текст 000000F0: AE A2 20 A2 20 AC A8 AA ¦ E0 AE AF E0 AE E6 A5 E1 ов в микропроцес 00000100: E1 AE E0 A0 E5 29 2C 20 ¦ A8 20 E2 A0 A1 AB A8 E6 сорах),и таблиц 00000110: EB 20 41 4E 53 49 2C 20 ¦ AF E0 A8 AC A5 AD EF EE ы ANSI, применяю 00000120: E9 A8 A5 E1 EF 20 A2 20 ¦ 57 49 4E 44 4F 57 53 2E щиеся в WINDOWS. 00000130: 20 82 20 E2 A0 A1 AB A8 ¦ E6 A0 E5 0D 0A 41 53 43 В таблицах♪◙ASC 00000140: 49 49 20 A8 20 41 4E 53 ¦ 49 20 AF A5 E0 A2 EB A5 II и ANSI первые 00000150: 20 31 32 38 20 E1 A8 AC ¦ A2 AE AB AE A2 20 E1 AE 128 символов со 00000160: A2 AF A0 A4 A0 EE E2 2E ¦ 20 82 20 ED E2 AE A9 20 впадают. В этой 00000170: E7 A0 E1 E2 A8 20 E2 A0 ¦ A1 AB A8 E6 EB 20 E1 AE части таблицы со 00000180: A4 A5 E0 A6 A0 E2 E1 EF ¦ 0D 0A E1 A8 AC A2 AE AB держатся♪◙символ 00000190: EB 20 E6 A8 E4 E0 2C 20 ¦ A7 AD A0 AA AE A2 20 AF ы цифр, знаков п 000001A0: E0 A5 AF A8 AD A0 AD A8 ¦ EF 2C 20 AB A0 E2 A8 AD репинания, латин 000001B0: E1 AA A8 A5 20 A1 E3 AA ¦ A2 EB 20 A2 A5 E0 E5 AD ские буквы верхн 000001C0: A5 A3 AE 20 A8 20 AD A8 ¦ A6 AD A5 A3 AE 20 E0 A5 его инижнего ре 000001D0: A3 A8 E1 E2 E0 AE A2 20 ¦ A8 0D 0A E3 AF E0 A0 A2 гистров и♪◙управ 000001E0: AB EF EE E9 A8 A5 20 E1 ¦ A8 AC A2 AE AB EB 2E 20 ляющие символы. 000001F0: 8D A0 E6 A8 AE AD A0 AB ¦ EC AD EB A5 20 E0 A0 E1 Национальные рас 00000200: E8 A8 E0 A5 AD A8 EF 20 ¦ E1 A8 AC A2 AE AB EC AD ширения символьн 00000210: EB E5 20 E2 A0 A1 AB A8 ¦ E6 20 A8 20 E1 A8 AC A2 ыхтаблиц и симв 00000220: AE AB EB 0D 0A AF E1 A5 ¦ A2 A4 AE A3 E0 A0 E4 A8 олы♪◙псевдографи 00000230: AA A8 20 E1 AE A4 A5 E0 ¦ A6 A0 E2 E1 EF 20 A2 20 ки содержатся в 00000240: AF AE E1 AB A5 A4 AD A8 ¦ E5 20 31 32 38 20 AA AE последних 128 ко 00000250: A4 A0 E5 20 ED E2 A8 E5 ¦ 20 E2 A0 A1 AB A8 E6 2C дах этих таблиц, 00000260: 20 AF AE ED E2 AE AC E3 ¦ 20 E0 E3 E1 E1 AA A8 A5 поэтому русские 00000270: 0D 0A E2 A5 AA E1 E2 EB ¦ 20 A2 20 AE AF A5 E0 A0 ♪◙тексты в опера 00000280: E6 A8 AE AD AD EB E5 20 ¦ E1 A8 E1 E2 A5 AC A0 E5 ционных системах 00000290: 20 44 4F 53 20 A8 20 57 ¦ 49 4E 44 4F 57 53 20 AD DOS и WINDOWS н 000002A0: A5 20 E1 AE A2 AF A0 A4 ¦ A0 EE E2 2E 0D 0A е совпадают.♪◙

В приведенном примере видно, что первая строка текста занимает 80 байт. Первый байт 82 соответствует букве "В". Второй байт E1 соответствует букве "с". Третий байт A5 соответствует букве "е". Следующий байт 20 отображает пустой промежуток между словами (пробел) " ". 81 и 82 байты содержат символы возврата каретки и перевода строки 0D 0A. Эти символы мы находим по двоичному адресу 00000050: Следующая строка исходного текста не кратна 16 (ее длина равна 76 буквам), поэтому для того, чтобы найти ее конец потребуется сначала найти строку 000000E0: и от нее отсчитать девять колонок. Там снова записаны байты возврата каретки и перевода строки 0D 0A. Остальной текст анализируется точно таким же образом.

Дата последнего обновления файла 04.12.2018

Литература:

Вместе со статьей "Запись текстов двоичным кодом" читают:

Представление двоичных чисел в памяти компьютера или микроконтроллера
http://сайт/proc/IntCod.php

Иногда бывает удобно хранить числа в памяти процессора в десятичном виде
http://сайт/proc/DecCod.php

Стандартные форматы чисел с плавающей запятой для компьютеров и микроконтроллеров
http://сайт/proc/float/

В настоящее время и в технике и в быту широко используются как позиционные, так и непозиционные системы счисления.
.php

Двоичный код - это подача информации путем сочетания символов 0 или 1. Порою бывает очень сложно понять принцип кодирования информации в виде этих двух чисел, однако мы постараемся все подробно разъяснить.

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

Видя что-то впервые, мы зачастую задаемся логичным вопросом о том, как это работает. Любая новая информация воспринимается нами, как что-то сложное или созданное исключительно для разглядываний издали, однако для людей, желающих узнать подробнее о двоичном коде , открывается незамысловатая истина - бинарный код вовсе не сложный для понимания, как нам кажется. К примеру, английская буква T в двоичной системе приобретет такой вид - 01010100, E - 01000101 и буква X - 01011000. Исходя из этого, понимаем, что английское слово TEXT в виде двоичного кода будет выглядеть таким вот образом: 01010100 01000101 01011000 01010100. Компьютер понимает именно такое изложение символов для данного слова, ну а мы предпочитаем видеть его в изложении букв алфавита.

На сегодняшний день двоичный код активно используется в программировании, поскольку работают вычислительные машины именно благодаря ему. Но программирование не свелось до бесконечного набора нулей и единиц. Поскольку это достаточно трудоемкий процесс, были приняты меры для упрощения понимания между компьютером и человеком. Решением проблемы послужило создание языков программирования (бейсик, си++ и т.п.). В итоге программист пишет программу на языке, который он понимает, а потом программа-компилятор переводит все в машинный код, запуская работу компьютера.

Перевод натурального числа десятичной системы счисления в двоичную систему.

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

1. Выбираем нужное число и делим его на 2. Если результат деления получился с остатком, то число двоичного кода будет 1, если остатка нет - 0.

2. Откидывая остаток, если он есть, снова делим число, полученное в результате первого деления, на 2. Устанавливаем число двоичной системы в зависимости от наличия остатка.

3. Продолжаем делить, вычисляя число двоичной системы из остатка, до тех пор, пока не дойдем до числа, которое делить нельзя - 0.

4. В этот момент считается, что двоичный код готов.

Для примера переведем в двоичную систему число 7:

1. 7: 2 = 3.5. Поскольку остаток есть, записываем первым числом двоичного кода 1.

2. 3: 2 = 1.5. Повторяем процедуру с выбором числа кода между 1 и 0 в зависимости от остатка.

3. 1: 2 = 0.5. Снова выбираем 1 по тому же принципу.

4. В результате получаем, переведенный из десятичной системы счисления в двоичную, код - 111.

Таким образом можно переводить бесконечное множество чисел. Теперь попробуем сделать наоборот - перевести число из двоичной в десятичную.

Перевод числа двоичной системы в десятичную.

Для этого нам нужно пронумеровать наше двоичное число 111 с конца, начиная нулем. Для 111 это 1^2 1^1 1^0. Исходя из этого, номер для числа послужит его степенем. Далее выполняем действия по формуле: (x * 2^y) + (x * 2^y) + (x * 2^y), где x - порядковое число двоичного кода, а y - степень этого числа. Подставляем наше двоичное число под эту формулу и считаем результат. Получаем: (1 * 2^2) + (1 * 2^1) + (1 * 2^0) = 4 + 2 + 1 = 7.

Немного из истории двоичной системы счисления.

Принято считать, что впервые двоичную систему предложил Готфрид Вильгельм Лейбниц, который считал систему полезной в сложных математических вычислениях и науке. Но по неким данным, до его предложения о двоичной системе счисления, в Китае появилась настенная надпись, которая расшифровывалась при использовании двоичного кода . На надписи были изображены длинные и короткие палочки. Предполагая, что длинная это 1, а короткая палочка - 0, есть доля вероятности, что в Китае идея двоичного кода существовала многим ранее его официального открытия. Расшифровка кода определила там только простое натуральное число, однако это факт, который им и остается.

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

В отличие от привычного для нас десятичного кодирования чисел, то есть кода с основанием десять, при двоичном кодировании в основании кода лежит число два (рис. 2.9). То есть каждая цифра кода (каждый разряд) двоичного кода может принимать не десять значений (как в десятичном коде: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9), а всего лишь два - 0 и 1. Система позиционной записи остается такой же, то есть справа пишется самый младший разряд, а слева - самый старший. Но если в десятичной системе вес каждого следующего разряда больше веса предыдущего в десять раз, то в двоичной системе (при двоичном кодировании) - в два раза. Каждый разряд двоичного кода называется бит (от английского "Binary Digit" - "двоичное число").

Рис. 2.9. Десятичное и двоичное кодирование

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

Из таблицы видно, что требуемое количество разрядов двоичного кода значительно больше, чем требуемое количество разрядов десятичного кода. Максимально возможное число при количестве разрядов, равном трем, составляет при десятичной системе 999, а при двоичной - всего лишь 7 (то есть 111 в двоичном коде). В общем случае n-разрядное двоичное число может принимать 2 n различных значений, а n-разрядное десятичное число - 10 n значений. То есть запись больших двоичных чисел (с количеством разрядов больше десяти) становится не слишком удобной.

Таблица 2.3. Соответствие чисел в десятичной и двоичной системах
Десятичная система Двоичная система Десятичная система Двоичная система

Для того чтобы упростить запись двоичных чисел, была предложена так называемая шестнадцатеричная система (16-ричное кодирование). В этом случае все двоичные разряды разбиваются на группы по четыре разряда (начиная с младшего), а затем уже каждая группа кодируется одним символом. Каждая такая группа называется полубайтом (или нибблом , тетрадой ), а две группы (8 разрядов) - байтом. Из табл. 2.3 видно, что 4-разрядное двоичное число может принимать 16 разных значений (от 0 до 15). Поэтому требуемое число символов для шестнадцатиричного кода тоже равно 16, откуда и происходит название кода. В качестве первых 10 символов берутся цифры от 0 до 9, а затем используются 6 начальных заглавных букв латинского алфавита: A, B, C, D, E, F.

Рис. 2.10. Двоичная и 16-ричная запись числа

В табл. 2.4 приведены примеры 16-ричного кодирования первых 20 чисел (в скобках приведены двоичные числа), а на рис. 2.10 показан пример записи двоичного числа в 16-ричном виде. Для обозначения 16-ричного кодирования иногда применяют букву "h" или "H" (от английского Hexadecimal) в конце числа, например, запись A17F h обозначает 16-ричное число A17F. Здесь А1 представляет собой старший байт числа, а 7F - младший байт числа. Все число (в нашем случае - двухбайтовое) называется словом .

Таблица 2.4. 16-ричная система кодирования
Десятичная система 16-ричная система Десятичная система 16-ричная система
0 (0) A (1010)
1(1) B (1011)
2 (10) C (1100)
3 (11) D (1101)
4 (100) E (1110)
5 (101) F (1111)
6 (110) 10 (10000)
7 (111) 11 (10001)
8 (1000) 12 (10010)
9 (1001) 13 (10011)

Для перевода 16-ричного числа в десятичное необходимо умножить значение младшего (нулевого) разряда на единицу, значение следующего (первого) разряда на 16, второго разряда на 256 (16 2) и т.д., а затем сложить все произведения. Например, возьмем число A17F:

A17F=F*16 0 + 7*16 1 + 1*16 2 + A*16 3 = 15*1 + 7*16+1*256+10*4096=41343

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

Помимо рассмотренных кодов, существует также и так называемое двоично-десятичное представление чисел. Как и в 16-ричном коде, в двоично-десятичном коде каждому разряду кода соответствует четыре двоичных разряда, однако каждая группа из четырех двоичных разрядов может принимать не шестнадцать, а только десять значений, кодируемых символами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. То есть одному десятичному разряду соответствует четыре двоичных. В результате получается, что написание чисел в двоично-десятичном коде ничем не отличается от написания в обычном десятичном коде (табл. 2.6), но в реальности это всего лишь специальный двоичный код, каждый разряд которого может принимать только два значения: 0 и 1. Двоично-десятичный код иногда очень удобен для организации десятичных цифровых индикаторов и табло.

Таблица 2.6. Двоично-десятичная система кодирования
Десятичная система Двоично-десятичная система Десятичная система Двоично-десятичная система
0 (0) 10 (1000)
1(1) 11 (1001)
2 (10) 12 (10010)
3 (11) 13 (10011)
4 (100) 14 (10100)
5 (101) 15 (10101)
6 (110) 16 (10110)
7 (111) 17 (10111)
8 (1000) 18 (11000)
9 (1001) 19 (11001)

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

Рассмотрим, например, сложение двух 4-разрядных двоичных чисел. Пусть надо сложить число 0111 (десятичное 7) и 1011 (десятичное 11). Сложение этих чисел не сложнее, чем в десятичном представлении:

При сложении 0 и 0 получаем 0, при сложении 1 и 0 получаем 1, при сложении 1 и 1 получаем 0 и перенос в следующий разряд 1. Результат - 10010 (десятичное 18). При сложении любых двух n-разрядных двоичных чисел может получиться n-разрядное или (n+1)-разрядное число.

Точно так же производится вычитание. Пусть из числа 10010 (18) надо вычесть число 0111 (7). Записываем числа с выравниванием по младшему разряду и вычитаем точно так же, как в случае десятичной системы:

При вычитании 0 из 0 получаем 0, при вычитании 0 из 1 получаем 1, при вычитании 1 из 1 получаем 0, при вычитании 1 из 0 получаем 1 и заем 1 в следующем разряде. Результат - 1011 (десятичное 11).

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

Для одновременного представления как двоичных положительных, так и двоичных отрицательных чисел чаще всего используется так называемый дополнительный код. Отрицательные числа в этом коде выражаются таким числом, которое, будучи сложено с положительным числом такой же величины, даст в результате нуль. Для того чтобы получить отрицательное число, надо поменять все биты такого же положительного числа на противоположные (0 на 1, 1 на 0) и прибавить к результату 1. Например, запишем число –5. Число 5 в двоичном коде выглядит 0101. Заменяем биты на противоположные: 1010 и прибавляем единицу: 1011. Суммируем результат с исходным числом: 1011 + 0101 = 0000 (перенос в пятый разряд игнорируем).

Отрицательные числа в дополнительном коде отличаются от положительных значением старшего разряда: единица в старшем разряде определяет отрицательное число, а нуль - положительное.

Помимо стандартных арифметических операций, в двоичной системе счисления используются и некоторые специфические операции, например, сложение по модулю 2. Эта операция (обозначается A) является побитовой, то есть никаких переносов из разряда в разряд и заемов в старших разрядах здесь не существует. Правила сложения по модулю 2 следующие: , , . Эта же операция называется функцией Исключающее ИЛИ . Например, просуммируем по модулю 2 два двоичных числа 0111 и 1011:

Среди других побитовых операций над двоичными числами можно отметить функцию И и функцию ИЛИ. Функция И дает в результате единицу только тогда, когда в соответствующих битах двух исходных чисел обе единицы, в противном случае результат -0. Функция ИЛИ дает в результате единицу тогда, когда хотя бы один из соответствующих битов исходных чисел равен 1, в противном случае результат 0.

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

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

Как шифровать бинарным кодом

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

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

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

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

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

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

  1. Ниже бинарного числа, начиная с крайней правой цифры, написать цифру 2 в возрастающих степенях.
  2. Степени числа 2 умножить на соответствующую цифру бинарного числа (1 или 0).
  3. Получившиеся значения сложить.

Вот как этот алгоритм выглядит на бумаге:

Онлайн сервисы для бинарной расшифровки

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

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


Ариабхата
Кириллическая
Греческая Грузинская
Эфиопская
Еврейская
Акшара-санкхья Другие Вавилонская
Египетская
Этрусская
Римская
Дунайская Аттическая
Кипу
Майяская
Эгейская
Символы КППУ Позиционные , , , , , , , , , , Нега-позиционная Симметричная Смешанные системы Фибоначчиева Непозиционные Единичная (унарная)

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

Двоичная запись чисел

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

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

Натуральные числа

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

(a n − 1 a n − 2 … a 1 a 0) 2 = ∑ k = 0 n − 1 a k 2 k , {\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}=\sum _{k=0}^{n-1}a_{k}2^{k},}

Отрицательные числа

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

(− a n − 1 a n − 2 … a 1 a 0) 2 = − ∑ k = 0 n − 1 a k 2 k . {\displaystyle (-a_{n-1}a_{n-2}\dots a_{1}a_{0})_{2}=-\sum _{k=0}^{n-1}a_{k}2^{k}.}

дополнительном коде .

Дробные числа

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

(a n − 1 a n − 2 … a 1 a 0 , a − 1 a − 2 … a − (m − 1) a − m) 2 = ∑ k = − m n − 1 a k 2 k , {\displaystyle (a_{n-1}a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m})_{2}=\sum _{k=-m}^{n-1}a_{k}2^{k},}

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

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

Пример сложения «столбиком» (десятичное выражение 14 10 + 5 10 = 19 10 в двоичном виде выглядит как 1110 2 + 101 2 = 10011 2):

Пример умножения «столбиком» (десятичное выражение 14 10 * 5 10 = 70 10 в двоичном виде выглядит как 1110 2 * 101 2 = 1000110 2):

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

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

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

1 * 2 5 + 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 0 * 2 1 + 1 * 2 0 = 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

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

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

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

1 * 2 6 + 0 * 2 5 + 1 * 2 4 + 1 * 2 3 + 0 * 2 2 + 1 * 2 1 + 0 * 2 0 + 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). Методом Горнера обычно переводят из двоичной в десятичную систему. Обратная операция затруднительна, так как требует навыков сложения и умножения в двоичной системе счисления.

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

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,1101 2

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

Ответ: 0,1101 2 = 0,8125 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. Результат записываем справа налево. То есть нижняя цифра (1) будет самой левой и т. д. В результате получаем число 19 в двоичной записи: 10011 .

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

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

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

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

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

Получим: 206,116 10 ≈ 11001110,0001110110 2

Применения

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

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

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

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

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

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

Обобщения

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

История

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

См. также

Примечания

  1. Попова Ольга Владимировна. Учебное пособие по информатике (неопр.) .
Поделиться