Калкулатор дужине бита и бајта - Бесплатни алат за величину података
Израчунајте дужине бита и бајта за целе бројеве, хексадекадне стрингове и текст са UTF-8, UTF-16, ASCII кодирањима. Бесплатни онлајн алат за програмере, научнике за податке и мрежне инжењере.
Калкулатор дужине бита и бајта
8 бита = 1 бајта
Визуализација
Dokumentacija
Шта је калкулатор дужине у битовима и бајтовима?
Калкулатор дужине у битовима и бајтовима утврђује колико је битова и бајтова потребно за одређени део података. Бит је једна бинарна цифра, 0 или 1. Бајт је група од 8 битова. Калкулатор прихвата цео број, хексадекадни запис или текстуални низ и приказује тачну величину у обе јединице.
Ово је важно за програмирање, умрежавање и складиштење података. Колона базе података, мрежни пакет и датотека на диску имају величину измерену у бајтовима, а та величина зависи од начина на који су подаци записани.
Како се израчунава дужина целог броја у битовима
Дужина позитивног целог броја у битовима једнака је броју цифара у његовом бинарном запису. На пример, 255 се у бинарном систему записује као 11111111, што има 8 цифара, па је његова дужина у битовима 8.
Формула: за позитиван цео број n, дужина у битовима једнака је броју цифара у запису броја n у систему са основом 2. У посебном случају n = 0, дужина у битовима износи 1.
Негативни цели бројеви користе комплемент до двојке, стандардни начин на који рачунари чувају бројеве са знаком. Дужина негативног целог броја у битовима је најмањи број битова у који он може да стане у запису помоћу комплемента до двојке. На пример, −128 стаје у 8 битова (као 10000000), али је за −129 потребно 9 битова, јер 8 битова може да досегне најниже до −128.
Када је дужина у битовима позната, дужина у бајтовима добија се заокруживањем навише на најближи цео бајт:
Дужина у бајтовима = ⌈дужина у битовима ÷ 8⌉
Симбол ⌈ ⌉ означава „заокруживање навише“. Вредност од 9 битова и даље захтева 2 пуна бајта, јер се бајт не може поделити.
Решени пример
| Цео број | Дужина у битовима | Дужина у бајтовима |
|---|---|---|
| 0 | 1 | 1 |
| 255 | 8 | 1 |
| 256 | 9 | 2 |
| −128 | 8 | 1 |
| −129 | 9 | 2 |
| 18,446,744,073,709,551,615 (2⁶⁴ − 1) | 64 | 8 |
Како се израчунава дужина хексадекадног низа у битовима
Свака хексадекадна цифра (0–9, A–F) представља тачно 4 бита, јер 4 бита могу да садрже 16 могућих вредности.
Формула: дужина у битовима = број хексадекадних цифара × 4. Дужина у бајтовима поново се добија тако што се дужина у битовима подели са 8 и резултат заокружи навише.
На пример, хексадекадни низ „FF“ има 2 цифре, па је његова дужина у битовима 2 × 4 = 8 битова, односно 1 бајт. Хексадекадни низ „ABCD“ има 4 цифре, што даје 16 битова, односно 2 бајта. Размаци и други знакови празнине уклањају се пре бројања. Непаран број цифара и даље се заокружује навише на цео бајт: „F“ има 4 бита, што калкулатор приказује као 1 бајт.
Како се израчунава дужина текстуалног низа у бајтовима
Код текста величина зависи од кодирања знакова, правила које одређује како се знакови претварају у бајтове. Калкулатор подржава пет кодирања:
- UTF-8: кодирање променљиве дужине које се користи на целом вебу. Сваки знак заузима од 1 до 4 бајта. Обична енглеска слова, цифре и знаци интерпункције заузимају по 1 бајт.
- UTF-16: користи се интерно у JavaScript-у и оперативном систему Windows. Већина знакова заузима 2 бајта; знакови изван основне вишејезичке равни, као што су многи емоџији, заузимају 4 бајта.
- UTF-32: кодирање фиксне дужине. Сваки знак заузима тачно 4 бајта, без обзира на то који је знак.
- ASCII: 7-битно кодирање које обухвата 128 знакова, углавном енглеска слова, цифре и основне знаке интерпункције. Сваки знак заузима 1 бајт. Сваки знак изван овог скупа се одбацује.
- Latin-1 (ISO-8859-1): 8-битно кодирање које обухвата 256 знакова и додаје слова са дијакритичким знацима која се користе у западноевропским језицима. Сваки знак заузима 1 бајт. Знакови изван овог скупа се одбацују.
Формула: дужина у бајтовима = број бајтова које кодирање произведе за низ. Дужина у битовима = дужина у бајтовима × 8.
Бројање обухвата сам текст. Ознака редоследа бајтова се не додаје, па је број за UTF-16 или UTF-32 овде за 2 или 4 бајта мањи него у алату који уписује ознаку на почетак.
Решени пример
Текст „Hello, world!“ има 13 знакова, од којих су сви обична ASCII слова и знаци интерпункције.
- UTF-8: 13 бајтова (104 битова), јер сваки знак стаје у 1 бајт.
- UTF-16: 26 бајтова (208 битова), јер сваки знак заузима 2 бајта.
Текст „こんにちは世界“ (седам јапанских знакова) заузима 3 бајта по знаку у UTF-8, што даје 21 бајтова (168 битова).
Емоџи као што је 😀 налази се изван основне вишејезичке равни. У UTF-8 заузима 4 бајта, у UTF-16 4 бајта (као сурогатни пар), а у UTF-32 4 бајта.
Зашто цели бројеви са знаком мењају резултат
Рачунари чувају негативне бројеве помоћу комплемента до двојке, а не обичним знаком минус. То значи да дужина негативног целог броја у битовима није једноставно дужина његове апсолутне вредности у битовима увећана за један. Правило гласи: дужина у битовима је најмањи број битова k такав да је вредност најмање −2^(k−1). Зато −128 (што је једнако −2⁷) стаје у 8 битова, док је за −129 потребно 9.
Најчешће постављана питања
Како да претворим бајтове у битове? Помножите са 8. Десет бајтова једнако је 80 битова, јер сваки бајт по дефиницији садржи 8 битова.
Која је разлика између дужине у битовима и дужине у бајтовима? Дужина у битовима броји појединачне бинарне цифре. Дужина у бајтовима броји групе од 8 битова, заокружене навише на следећи цео бајт када дужина у битовима није умножак од 8.
Колико бајтова заузима знак у UTF-8? Од 1 до 4. Знакови заједнички са ASCII-јем заузимају 1 бајт. Многи латинични, грчки и ћирилични знакови са дијакритичким знацима заузимају 2 бајта. Већина кинеских, јапанских и корејских знакова заузима 3 бајта. Емоџији и други ретки симболи заузимају 4 бајта.
Како се израчунава дужина хексадекадног низа у бајтовима? Пребројте хексадекадне цифре након уклањања знакова празнине, помножите их са 4 да бисте добили број битова, а затим резултат заокружите навише на цео број бајтова. Сваки бајт има 2 хексадекадне цифре, па је „FF“ 1 бајт, а „ABCD“ 2 бајта. Једна цифра, као што је „F“, има 4 бита, али и даље заузима 1 бајт.
Зашто је негативном целом броју понекад потребно више битова него одговарајућем позитивном броју? Комплемент до двојке користи један бит за означавање знака, али се тај бит дели са опсегом вредности, уместо да се у сваком случају додаје преко њега. −128 стаје у истих 8 битова као позитивне вредности до 127, али −129 више не стаје у 8 битова и потребно му је 9.
Које величине улаза овај калкулатор прихвата? Целе бројеве, хексадекадне и текстуалне низове дужине до 1.000.000 знакова.
Литература
- "Character encoding." Википедија, Фондација Викимедија. https://en.wikipedia.org/wiki/Character_encoding
- "UTF-8, UTF-16, UTF-32 & BOM." Unicode, Inc. https://www.unicode.org/faq/utf_bom.html
- "Two's complement." Википедија, Фондација Викимедија. https://en.wikipedia.org/wiki/Two%27s_complement