Двоично, десетично и шестнадесетично: как да преминавате от едното към другото

Преобразуването между бройни системи изглежда като магия, докато не видите, че идеята е винаги една и съща: всяка цифра струва според мястото, на което стои. Тук ще научите как да преминавате от двоично в десетично и от десетично в двоично на ръка, как да четете шестнадесетичното без страх и как да превръщате текст в битове, с решени сметки и таблица от 0 до 15 за справка.

Обновено:

Какво е позиционна бройна система

В десетичното число 4095 цифрата 4 не струва 4: струва 4000, защото стои на мястото на хилядите. Всяка позиция умножава цифрата по степен на 10 (1, 10, 100, 1000…). Това е позиционната система, а основата е броят на различните цифри, които се ползват: десет в десетичната.

Двоичната работи по същия начин, но с основа 2: съществуват само 0 и 1, а всяко място струва двойно повече от предишното. Шестнадесетичната е с основа 16: шестнайсетте цифри са от 0 до 9 и буквите от A до F, а всяко място струва 16 пъти повече от предишното. Компютрите работят в двоична система, защото една схема трябва да различава само две състояния (изключено и включено), а шестнадесетичната е кратък начин да се запишат тези битове.

Колко струва всяко място. Ако знаете наизуст степените на 2 до 128, спестявате почти всички сметки.
Позиция (отдясно наляво)Стойност в двоичнаСтойност в шестнадесетична
1-ва11
2-ра216
3-та4256
4-та84096
5-та1665536
6-та321048576
7-ма6416777216
8-ма128268435456

От двоично в десетично, на ръка

Записва се всяка цифра със стойността на мястото ѝ и се събират само местата, където има 1. Пример с 1101: отдясно наляво местата струват 1, 2, 4 и 8.

  1. Запишете числото и под него стойността на всяка позиция: 1 1 0 1 над 8 4 2 1.
  2. Погледнете какво има на всяко място: 1 на мястото на 8, 1 на мястото на 4, 0 на мястото на 2 и 1 на мястото на 1.
  3. Пренебрегнете местата с 0 (тук това на 2).
  4. Съберете: 8 + 4 + 0 + 1 = 13. Значи 1101 в двоична система е 13 в десетична.

С повече цифри е същото: 11111111 е 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, най-голямата стойност, която се събира в 8 бита. А 10110110 е 128 + 32 + 16 + 4 + 2 = 182.

От десетично в двоично, с последователни деления

Числото се дели на 2 отново и отново, като се записва остатъкът от всяко деление (винаги 0 или 1), докато частното стане 0. Остатъците, прочетени отдолу нагоре, са двоичното число. Пример с 45:

Като прочетете остатъците отдолу нагоре, получавате 101101. За проверка съберете: 32 + 8 + 4 + 1 = 45.

Има и алтернативен метод, който мнозина предпочитат: изваждане на степени на 2 от най-голямата към най-малката. За 200: влиза 128 (остават 72), влиза 64 (остават 8), не влизат 32 и 16, но влиза 8 (остава 0). Използваните места са 128, 64 и 8, така че 200 = 11001000.

Шестнадесетична система: шестнайсет цифри и таблица под ръка

Тъй като няма цифри за 10 до 15, се ползват буквите A, B, C, D, E и F. Една шестнадесетична цифра съответства точно на четири бита (един «нибъл»), и затова е толкова удобна: един байт, който е 8 бита, се записва само с две шестнадесетични цифри.

За да преминете от шестнадесетично в десетично, умножете всяка цифра по степента на 16 на нейното място и съберете. Например 3F = 3 × 16 + 15 = 63 и A3 = 10 × 16 + 3 = 163.

От 0 до 15 в четирите основи, които показва инструментът.
ДесетичноДвоично (4 бита)ОсмичноШестнадесетично
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Защо се ползва шестнадесетичната: байтове, цветове и адреси

Един байт са 8 бита и е от 0 до 255 (00000000 до 11111111). Писането на битове на ръка е бавно и води до грешки; в шестнадесетична система същият байт са два знака, от 00 до FF. За да преминете от двоично в шестнадесетично, разделете битовете на групи по четири отдясно и заменете всяка група с нейната цифра от таблицата. Пример: 11010111 се разделя на 1101 и 0111, които са D и 7, така че е D7. В десетична система това е 13 × 16 + 7 = 215.

Най-известният случай са уеб цветовете. В #FF8800 има три байта: FF за червеното (255), 88 за зеленото (136) и 00 за синьото (0). Това е наситен оранжев: цялото червено, малко над половината от зеленото и никакво синьо. Шестнадесетичната система се среща и в адреси на паметта, кодове за грешки и мрежови идентификатори.

От текст в двоичен код с ASCII

Компютърът пази всяка буква като число, а числото като битове. В таблицата ASCII буквата A е 65, което в 8-битов двоичен запис е 01000001. Думата «Hi» са две букви: H е 72 (01001000), а i е 105 (01101001), така че се записва 01001000 01101001. С «Hola» са 72, 111, 108 и 97, тоест 01001000 01101111 01101100 01100001, а в шестнадесетичен вид 48 6F 6C 61.

Инструментът ползва кодирането UTF-8: за основните латински букви всеки знак заема един байт от 8 бита, но буква с диакритичен знак или емоджи заемат по няколко байта и затова дават повече от 8 бита. Например буквата ñ са два байта: 11000011 10110001 (C3 B1 в шестнадесетичен вид).

Как да направите всичко това с инструмента

Конверторът «Двоично, десетично и шестнадесетично» служи да проверите сметките си на ръка или да решавате дълги числа без грешки.

  1. Напишете числото в полето на неговата основа: «Десетична (основа 10)», «Двоична (основа 2)», осмична или «Шестнадесетична (основа 16)». Останалите три се попълват сами.
  2. Ако някоя цифра не е валидна за основата (например 2 в двоична), инструментът ви предупреждава.
  3. За текст го напишете в полето «Текст» и вижте «Двоично (8 бита на символ)» и шестнадесетичния вид по байтове. Можете да поставите и битове на групи по 8, за да се върнете към текста.
  4. За необичайни основи ползвайте «Произволна основа (от 2 до 36)»: избирате основата на източника, основата на резултата и числото.

Ограниченията: преобразува само неотрицателни цели числа (без десетични знаци и без знак) и не добавя нули отляво вместо вас, така че ако искате фиксирани 8 бита, трябва да допълните на ръка (13 е 00001101). Нищо от написаното не напуска вашия браузър.

Чести грешки

Решени упражнения за практика

Опитайте се да решите всяко, преди да погледнете отговора, и после проверете с инструмента.

Често задавани въпроси

Как да преобразувам 1101 от двоично в десетично?

Събирате стойностите на местата, където има 1: 8 + 4 + 1 = 13. Втората цифра отдясно е 0, така че 2 не се добавя.

Колко е 255 в двоична и в шестнадесетична система?

255 е 11111111 в двоична и FF в шестнадесетична система. Това е най-голямата стойност, която се събира в един байт от 8 бита.

Защо шестнадесетичната система ползва букви?

Защото ѝ трябват шестнайсет различни символа, а десетичната система дава само десет (от 0 до 9). Затова A е 10, B е 11, C е 12, D е 13, E е 14 и F е 15.

Колко различни числа могат да се запишат с 8 бита?

256, от 0 до 255. Като цяло с n бита могат да се представят 2 на степен n стойности.

Преобразува ли инструментът отрицателни числа или числа с десетични знаци?

Не, само неотрицателни цели числа. За текст ползва UTF-8, така че буквите с диакритични знаци и емоджитата дават повече от 8 бита.