Калкулатор за преобразуване на бройни системи
Преобразувайте цяло число в двоична, осмична, десетична и шестнадесетична бройна система.
Как да използвате този калкулатор за преобразуване на бройни системи
- Въведете цялото число
Въведете неотрицателно цяло число в полето „Цяло число“ (напр. 255 или 4096).
- Прочетете двоичната стойност
Резултатът в двоична стойност показва представянето в бройна система с основа 2.
- Проверете осмичната и шестнадесетичната стойност
Прегледайте осмичните и шестнадесетичните резултати за компактни представяния.
- Проверете десетичната стойност
Десетичният резултат потвърждава първоначалната стойност за проверка.
Как работи този калкулатор за преобразуване на бройни системи
Този калкулатор за преобразуване на бройни системи приема цяло число в десетична система (основа 10) и го представя в двоична (основа 2), осмична (основа 8) и шестнадесетична (основа 16) — четирите бройни системи, които се използват най-често в изчислителната техника. Всяка позиционна бройна система работи по един и същ начин: всяка позиция на цифрата представлява поредна степен на основата, а стойността на числото е сумата от всяка цифра, умножена по нейното позиционно тегло. Преобразуването между основи е фундаментална операция в програмирането на ниско ниво, проектирането на цифрова логика, мрежовото инженерство (MAC и IPv6 адреси), цветовите кодове в CSS, маските за права върху файлове в Unix и проверката на адреси в паметта по време на дебъгване.
Последователно делене: разделете N на целевата основа R, запишете остатъка, повторете с частното, докато достигне 0, след което прочетете остатъците в обратен ред Преобразувайте десетичното число 255 в двоично, осмично и шестнадесетично. За двоично (R = 2): 255 ÷ 2 = 127 остатък 1, 127 ÷ 2 = 63 R 1, 63 ÷ 2 = 31 R 1, 31 ÷ 2 = 15 R 1, 15 ÷ 2 = 7 R 1, 7 ÷ 2 = 3 R 1, 3 ÷ 2 = 1 R 1, 1 ÷ 2 = 0 R 1. Четене на остатъците отдолу нагоре: 11111111. За осмично (R = 8): 255 ÷ 8 = 31 R 7, 31 ÷ 8 = 3 R 7, 3 ÷ 8 = 0 R 3 → 377. За шестнадесетично (R = 16): 255 ÷ 16 = 15 R 15 (F), 15 ÷ 16 = 0 R 15 (F) → FF.
Десетично 4096 → двоично 1000000000000, осмично 10000, шестнадесетично 1000. Полезно за разбиране на 4 KiB = 4096 байта.
Десетично 15 → двоично 1111, осмично 17, шестнадесетично F. Всяка шестнадесетична цифра съответства точно на четири бита; F = 1111.
- ✓ Входните данни са неотрицателно цяло число (нула или положително цяло число). Дробните стойности и отрицателните числа изискват разширени алгоритми (напр. допълнителен код за двоични числа със знак), които са извън обхвата на този инструмент.
- ✓ Шестнадесетичните цифри над 9 се представят с главни букви A–F, следвайки конвенцията в повечето езици за програмиране, RFC и хардуерна документация.
- ✓ Водещите нули се пропускат в резултата. За представяния с фиксирана ширина (напр. 8-битова или 32-битова двоична система), допълнете резултата ръчно до желаната ширина.
- ✓ Калкулаторът приема само неотрицателни цели числа. Стойности над 2^53 − 1 (Number.MAX_SAFE_INTEGER в JavaScript) се отхвърлят, за да се запази точността на показаните цифри.
- Всяка шестнадесетична цифра съответства на точно четири двоични цифри (бита), а всяка осмична цифра съответства на точно три бита. Тази връзка прави умственото преобразуване между шестнадесетична, осмична и двоична система бързо, след като запомните 16-те нибъл модела.
- Често срещани стойности, които си струва да запомните: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4,294,967,295 (максималното 32-битово цяло число без знак).
- Unix файловите разрешения използват осмична бройна система: 755 означава rwxr-xr-x (собственик четене/запис/изпълнение, група и други четене/изпълнение). Всяка осмична цифра кодира три бита за разрешение.
- CSS шестнадесетичните цветови кодове са три последователни шестнадесетични байтови стойности, представляващи каналите за червено, зелено и синьо — напр. #FF8800 е 255 червено, 136 зелено, 0 синьо.
- Теория на позиционните бройни системи — Knuth, D. E., The Art of Computer Programming, Volume 2: Seminumerical Algorithms, Section 4.1
- IEEE 754-2019 — Стандарт за аритметика с плаваща запетая (контекст на представяне на цели числа)
- RFC 4291 — Архитектура на адресирането в IP версия 6 (шестнадесетична нотация за IPv6)
Разбиране на бройните системи в изчисленията
Всяка позиционна бройна система използва основа (radix) и присвоява на всяка цифра тежест въз основа на нейната позиция. В десетичната система (основа 10) най-дясната цифра са единиците, следващата са десетиците, след това стотиците. Двоичната система (основа 2) използва само 0 и 1, съответстващи директно на състоянията включено/изключено на транзисторите. Осмичната система (основа 8) групира по три бита на цифра, а шестнадесетичната (основа 16) групира по четири бита на цифра, използвайки A–F за стойностите 10–15. Преобразуването между основите става чрез последователно делене: разделете числото на целевата основа, запишете остатъка, повторете с частното до нула, след което прочетете остатъците в обратен ред. Този алгоритъм стои в основата на всяко преобразуване на бройни системи в програмирането.
Практически случаи на употреба на преобразуване на бройни системи за разработчици
Разработчиците използват преобразуване на бройни системи при преглед на паметта (memory dumps), дебъгване на побитови операции, интерпретиране на файлови права и работа с цветови кодове. Файловите права в Unix (напр. 755) са в осмична система: всяка цифра кодира четене/запис/изпълнение за собственика, групата и останалите. CSS шестнадесетичните цветове като #FF8800 са три последователни байта в шестнадесетичен формат. IPv6 адресите се изписват в шестнадесетичен формат. Битовите маски и флагове често се изразяват в шестнадесетичен формат за по-добра четливост (0xFF за байтова маска, 0xFFFF за 16 бита). При дебъгване на код на ниско ниво или мрежови протоколи, преобразуването между десетична, шестнадесетична и двоична система бързо разкрива основните битови модели.
Често задавани въпроси за калкулатора за преобразуване на бройни системи
Защо в изчислителната техника се използват двоична, осмична и шестнадесетична бройни системи?
Двоичната система съответства директно на състоянията включено/изключено на транзисторите, което я прави естествения език на хардуера. Осмичната и шестнадесетичната системи са компактни съкращения на двоичната — една шестнадесетична цифра представлява точно четири бита, а една осмична цифра представлява три бита — затова програмистите ги използват за по-кратко изразяване на адреси, битови маски и цветови кодове в сравнение с дългите двоични низове.
Как да преобразувам в другата посока (напр. от шестнадесетична в десетична)?
Умножете всяка цифра по нейната позиционна степен на основата и съберете резултатите. Например, шестнадесетичното 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 в десетична система.
Какво се случва с много големи числа?
Калкулаторът приема само стойности до лимита за безопасно цяло число на JavaScript: 2^53 − 1 (9 007 199 254 740 991). По-големите числа се отхвърлят, тъй като могат да загубят най-малко значимите си цифри в браузъра.
Мога ли да конвертирам отрицателни числа или дроби?
Този инструмент работи с неотрицателни цели числа. Отрицателните цели числа в изчислителната техника обикновено се представят чрез допълнителен код (two's complement) във фиксирана битова ширина, а дробните стойности използват кодиране с плаваща запетая IEEE 754 — и двете изискват допълнителни параметри, които този калкулатор не събира.
Защо префиксът 0x се появява в кода, но не и в резултата?
Префиксът 0x (и 0b за двоична, 0o за осмична система) е специфичен за езика синтаксис на литералите, който указва на компилатора или интерпретатора коя бройна система да очаква. Калкулаторът извежда чистия низ от цифри без префикс, за да може да се използва във всеки контекст.