Мобільні телефони та гаджети

Мобільні телефони та гаджети

» Як декодувати двійковий код Що таке двійковий код? Перетворіть десяткові числа на символи ASCII

Як декодувати двійковий код Що таке двійковий код? Перетворіть десяткові числа на символи ASCII

Двійковий код- це подання інформації шляхом поєднання символів 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, є частка ймовірності, що у Китаї ідея двійкового коду існувала багатьом раніше його офіційного відкриття. Розшифровка коду визначила там лише просте натуральне число, проте це факт, який їм залишається.

Усі символи та літери можуть бути закодовані за допомогою восьми двійкових біт. Найбільш поширеними таблицями представлення букв у двійковому коді є 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 Латинська літера
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 E0 0 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 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 ♪◙Найбільш розповсюдження 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 з 0000009 EB AC A8 0D 0A E0 національними♪◙р 000000A0: A0 E1 E8 A8 E0 A5 AD A8 | 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 00 A7 AE 00 : 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 A0 E5 29 2C 20 A8 20 E2 A0 A1 AB A8 E6 сорах), та таблиць 00000110: EB 20 41 4E 53 49 2C 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 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 20 E6 A8 E4 E0 2C 20 | A7 AD | 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 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 EC AD EB A5 20 E0 A0 E1 Національні рас 00000200: E8 A8 E0 A5 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 оли 0 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 крыша цих таблиць, 00000260: 20 AF AE ED E2 AE AC E3 | 20 E0 E3 E1 E1 AA A8 A5 тому російські : E6 A8 AE AD AD EB E5 20 | E1 A8 E1 E2 A5 AC A0 E5 ційних системах 1 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 до 9, і кожне місце в числі має цінність у десять разів вищу, ніж місце праворуч від нього. Щоб уявити число більше дев'яти в десятковій системі обчислення, його місце ставиться нуль, але в наступне, більш цінне місце зліва - одиниця. Так само в двійковій системі, де використовуються тільки дві цифри - 0 і 1, кожне місце вдвічі цінніше, ніж місце праворуч від нього. Таким чином, у двійковому коді тільки нуль і одиниця можуть бути зображені як одномісні числа, і будь-яке число більше одиниці вимагає вже два місця. Після нуля і одиниці наступні три двійкові числа це 10 (читається один-нуль) і 11 (читається один-один) і 100 (читається один-нуль). 100 двійкової системи еквівалентно 4 десятковій. На верхній таблиці праворуч показані інші двійково-десяткові еквіваленти.
Будь-яке число може бути виражене у двійковому коді, просто воно займе більше місця, ніж у десятковому позначенні. У двійковій системі можна записати і абетку, якщо за кожною літерою закріпити певне двійкове число.

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

Біти та байти

Найменша одиниця в комп'ютерній обробці, біт - це одиниця даних, яка може мати одну з двох можливих умов. Наприклад, кожна з одиниць і нулів (праворуч) означає 1 біт. Біт можна уявити й іншими способами: наявністю або відсутністю електричного струму, дірочкою та її відсутністю, напрямом намагнічування вправо чи вліво. Вісім бітів становлять байт. 256 можливих байтів можуть представити 256 символів та символів. Багато комп'ютерів обробляють байт даних одночасно.

Двійкова конверсія. Чотирьохцифровий двійковий код може подати десяткові числа від 0 до 15.

Кодові таблиці

Коли двійковий код використовується для позначення літер алфавіту або пунктуаційних знаків, потрібні кодові таблиці, в яких зазначено, який код символу відповідає. Складено декілька таких кодів. Більшість ПК пристосовані під семицифровий код, що називається ASCII, або американський стандартний код для інформаційного обміну. На таблиці справа показані коди ASCII для англійського алфавіту. Інші коди призначені для тисяч символів та алфавітів інших мов світу.

Частина таблиці коду ASCII

Комп'ютери не розуміють слів і цифр, як це роблять люди. Сучасне програмне забезпечення дозволяє кінцевому користувачеві ігнорувати це, але на найнижчих рівнях ваш комп'ютер оперує двійковим електричним сигналом, який має лише два стани: є струм чи немає струму Щоб "зрозуміти" складні дані, ваш комп'ютер повинен закодувати їх у двійковому форматі.

Двійкова система ґрунтується на двох цифрах – 1 та 0, відповідних станах включення та вимикання, які ваш комп'ютер може зрозуміти. Ймовірно, ви знайомі з десятковою системою. Вона використовує десять цифр - від 0 до 9, а потім переходить до наступного порядку, щоб сформувати двоцифрові числа, причому цифра з кожного наступного порядку в десять разів більша, ніж попередня. Двійкова система аналогічна, причому кожна цифра вдвічі більша, ніж попередня.

Підрахунок у двійковому форматі

У двійковому вираженні перша цифра дорівнює 1 з десяткової системи. Друга цифра дорівнює 2, третя – 4, четверта – 8, тощо – подвоюється щоразу. Додавання всіх цих значень дасть вам число у десятковому форматі.

1111 (у двійковому форматі) = 8 + 4 + 2 + 1 = 15 (у десятковій системі)

Облік 0 дає 16 можливих значень для чотирьох двійкових бітів. Перейдіть на 8 біт, і ви отримаєте 256 можливих значень. Це займає набагато більше місця для представлення, оскільки чотири цифри у десятковій формі дають нам 10 000 можливих значень. Звичайно, бінарний код займає більше місця, але комп'ютери розуміють двійкові файли набагато краще, ніж десяткову систему. І для деяких речей, таких як логічна обробка, двійковий код кращий за десятковий.

Слід сказати, що є ще одна базова система, яка використовується в програмуванні: шістнадцяткова. Хоча комп'ютери не працюють у шістнадцятковому форматі, програмісти використовують її для подання двійкових адрес у форматі, що читається, при написанні коду. Це з тим, що дві цифри шістнадцяткового числа можуть бути цілий байт, тобто замінюють вісім цифр у двійковому форматі. Шістнадцяткова система використовує цифри 0-9, а також літери від A до F, щоб отримати додаткові шість цифр.

Чому комп'ютери використовують двійкові файли

Коротка відповідь: апаратне забезпечення та закони фізики. Кожен символ у вашому комп'ютері є електричним сигналом, і в перші дні обчислень вимірювати електричні сигнали набагато складніше. Було розумніше розрізняти лише «включений» стан, представлений негативним зарядом, і «вимкнений» стан, представлений позитивним зарядом.

Для тих, хто не знає, чому "вимкнено" представлено позитивним зарядом, це пов'язано з тим, що електрони мають негативний заряд, а більше електронів - більше струму з негативним зарядом.

Таким чином, ранні комп'ютери розміром із кімнату використовували двійкові файлидля створення своїх систем, і хоча вони використовували більш старе, громіздке обладнання, вони працювали на тих же фундаментальних принципах. Сучасні комп'ютери використовують так званий, транзистор для виконання розрахунків із двійковим кодом.

Ось схема типового транзистора:

По суті, він дозволяє струму текти від джерела до стоку, якщо у воротах є струм. Це формує двійковий ключ. Виробники можуть створювати ці транзистори неймовірно малими – аж до 5 нанометрів або розміром дві нитки ДНК. Це те, як працюють сучасні процесори, і навіть вони можуть страждати від проблем з розрізненням включеного та вимкненого стану (хоча це пов'язано з їх нереальним молекулярним розміром, схильним до дивностям квантової механіки).

Чому тільки двійкова система

Тому ви можете подумати: «Чому лише 0 та 1? Чому б не додати ще одну цифру? Хоча частково це пов'язано з традиціями створення комп'ютерів, додавання ще однієї цифри означало б необхідність виділяти ще один стан струму, а не тільки «вимкнений» або «включений».

Проблема тут у тому, що якщо ви хочете використовувати кілька рівнів напруги, вам потрібен спосіб легко виконувати обчислення з ними, а сучасне апаратне забезпечення, здатне на це, не є життєздатним як заміна двійкових обчислень. Наприклад, існує так званий, потрійний комп'ютер, Розроблений в 1950-х роках, але розробка на тому і припинилася. Тернарна логіка більш ефективна, ніж двійкова, але поки що немає ефективної заміни бінарного транзистора або, принаймні, немає транзистора настільки ж крихітних масштабів, що й двійкові.

Причина, через яку ми не можемо використовувати потрійну логіку, полягає в тому, як транзистори з'єднуються в комп'ютері і як вони використовуються для математичних обчислень. Транзистор отримує інформацію на два входи, виконує операцію та повертає результат на один вихід.

Таким чином, бінарна математика простіше для комп'ютера, ніж будь-що ще. Двійкова логіка легко перетворюється на двійкові системи, причому True і False відповідають станам Вкл і Вимк .

Бінарна таблиця істинності, що працює на двійковій логіці, матиме чотири можливі виходи для кожної фундаментальної операції. Але оскільки потрійні ворота використовують три входи, потрійна таблиця істинності мала б 9 або більше. У той час, як бінарна система має 16 можливих операторів (2^2^2), трійкова система мала б 19683 (3^3^3). Масштабування стає проблемою, оскільки, хоча трійкість ефективніша, вона також експоненційно складніша.

Хто знає?У майбутньому ми цілком можливо побачимо трійчасті комп'ютери, оскільки бінарна логіка зіткнулася з проблемами мініатюризації. Поки що світ продовжуватиме працювати в двійковому режимі.

Термін «бінарний» за змістом – що складається із двох частин, компонентів. Таким чином бінарні коди це коди, які складаються тільки з двох символьних станів, наприклад чорний або білий, світлий або темний, провідник або ізолятор. Бінарний код у цифровій техніці це спосіб представлення даних (чисел, слів та інших) у вигляді комбінації двох знаків, які можна позначити як 0 та 1. Знаки чи одиниці БК називають бітами. Одним з обґрунтувань застосування БК є простота та надійність накопичення інформації в якомусь носії у вигляді комбінації всього двох його фізичних станів, наприклад у вигляді зміни або сталості світлового потоку при зчитуванні з оптичного кодового диска.
Існують різні можливості кодування інформації.

Двійковий код

У цифровій техніці спосіб представлення даних (чисел, слів та інших) як комбінації двох знаків, які можна позначити як 0 і 1. Знаки або одиниці ДК називають бітами.

Одним з обґрунтувань застосування ДК є простота і надійність накопичення інформації в якомусь носії у вигляді комбінації всього двох його фізичних станів, наприклад у вигляді зміни або сталості магнітного потоку в даному осередку носія магнітного запису.

Найбільше, яке може бути виражене двійковим кодом, залежить кількості використовуваних розрядів, тобто. від кількості бітів у комбінації, що виражає число. Наприклад, для вираження числових значень від 0 до 7 достатньо мати 3-розрядний або 3-бітовий код:

числове значення двійковий код
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Звідси видно, що з числа більше 7 при 3-разрядном коді немає кодових комбінацій з 0 і 1.

Переходячи від чисел до фізичних величин, сформулюємо наведене вище твердження в більш загальному вигляді: найбільша кількість значень m будь-якої величини (температури, напруги, струму та ін.), яка може бути виражена двійковим кодом, залежить від числа використовуваних розрядів n як m= 2n. Якщо n=3, як у розглянутому прикладі, отримаємо 8 значень, включаючи провідний 0.
Двійковий код є багатокроковим кодом. Це означає, що з переході з одного становища (значення) в інше можуть зміняться кілька біт одночасно. Наприклад число 3 у двійковому коді = 011. Число ж 4 у двійковому коді = 100. Відповідно при переході від 3 до 4 змінюють свій стан на протилежний усі 3 біти одночасно. Зчитування такого коду з кодового диска призвело б до того, що через неминучі відхилення (толеранці) при виробництві кодового диска зміна інформації від кожної з доріжок окремо ніколи не відбудеться одночасно. Це, у свою чергу, призвело б до того, що при переході від одного числа до іншого короткочасно буде видано неправильну інформацію. Так при вищезгаданому переході від числа 3 до 4 дуже можлива короткочасна видача числа 7 коли, наприклад, старший біт під час переходу змінив своє значення трохи раніше ніж інші. Щоб уникнути цього, застосовується так званий однокроковий код, наприклад, так званий Грей-код.

Код Грею

Грей-код є так званим однокроковим кодом, тобто. при переході від одного числа до іншого завжди змінюється лише якийсь один із усіх біт інформації. Похибка при зчитуванні інформації з механічного кодового диска при переході від одного числа до іншого призведе лише до того, що перехід від одного положення до іншого буде лише трохи зміщений за часом, проте видача абсолютно невірного значення кутового положення при переході від одного положення до іншого виключається повністю .
Перевагою Грей-коду є його здатність дзеркального відображення інформації. Так, інвертуючи старший біт можна простим чином змінювати напрямок рахунку і таким чином підбирати до фактичного (фізичного) напрямку обертання осі. Зміна напряму рахунку таким чином може легко змінюватися керуючи так званим входом Complement. Значення, що видається, може таким чином бути зростаючим або спадаючим при тому самому фізичному напрямку обертання осі.
Оскільки інформація, виражена в Грей-коді, має суто кодований характер не несучої реальної числової інформації, він повинен перед подальшою обробкою спершу перетворений на стандартний бінарний код. Здійснюється це за допомогою перетворювача коду (декодера Грей-Бінар), який на щастя легко реалізується за допомогою ланцюга з логічних елементів, що «виключає або» (XOR) як програмним так і апаратним способом.

Відповідність десяткових чисел у діапазоні від 0 до 15 двійкового коду та коду Грея

Двійкове кодування Кодування за методом Грею
Десятковий код
Двійкове значення Шестнадц. значення Десятковий код Двійкове значення Шестнадц. значення
0 0000 0h 0 0000 0h
1 0001 1h 1 0001 1h
2 0010 2h 3 0011 3h
3 0011 3h 2 0010 2h
4 0100 4h 6 0110 6h
5 0101 5h 7 0111 7h
6 0110 6h 5 0101 5h
7 0111 7h 4 0100 4h
8 1000 8h 12 1100 Ch
9 1001 9h 13 1101 Dh
10 1010 Ah 15 1111 Fh
11 1011 Bh 14 1110 Eh
12 1100 Ch 10 1010 Ah
13 1101 Dh 11 1011 Bh
14 1110 Eh 9 1001 9h
15 1111 Fh 8 1000 8h

Перетворення коду Грея на звичний бінарний код можна здійснити, використовуючи просту схему з інверторами та логічними елементами “виключне або” як показано нижче:

Код Gray-Excess

Звичайний однокроковий Грей-код підходить для дозволів, які можуть бути представлені у вигляді числа зведеного в ступінь 2. У випадках, де треба реалізувати інші дозволи зі звичайного Грей-коду, вирізається і використовується середня його ділянка. Таким чином зберігається «однокроковість» коду. Однак числовий діапазон починається не з нуля, а зміщується певне значення. При обробці інформації від сигналу, що генерується, віднімається половина різниці між початковим і редукованим дозволом. Такі дозволи, як, наприклад, 360? для вираження кута часто реалізуються цим способом. Так 9-бітний Грей-код рівний 512 кроків, урізаний з обох сторін на 76 кроків дорівнюватиме 360 °.