Kalkulator duljine bitova i bajtova - Besplatni alat za veličinu podataka
Izračunajte duljine bitova i bajtova za cjelobrojeve, heksadecimalne nizove i tekst s UTF-8, UTF-16, ASCII kodiranjima. Besplatni online alat za programere, znanstvenike podataka i mrežne inženjere.
Kalkulator duljine bitova i bajtova
8 bitova = 1 bajtova
Vizualizacija
Dokumentacija
Što je kalkulator duljine bitova i bajtova?
Kalkulator duljine bitova i bajtova određuje koliko bitova i bajtova zauzima dio podataka. Bit je jedna binarna znamenka, 0 ili 1. Bajt je skup od 8 bitova. Kalkulator prihvaća cijeli broj, heksadecimalni niz ili tekstualni niz te prikazuje točnu veličinu u objema jedinicama.
To je važno za programiranje, umrežavanje i pohranu podataka. Stupac baze podataka, mrežni paket i datoteka na disku imaju veličinu izraženu u bajtovima, a ta veličina ovisi o načinu zapisa podataka.
Kako izračunati duljinu bitova cijelog broja
Duljina bitova pozitivnog cijelog broja jest broj znamenki u njegovu binarnom zapisu. Na primjer, 255 u binarnom je zapisu 11111111, koji ima 8 znamenki, pa je njegova duljina bitova 8.
Formula: za pozitivni cijeli broj n duljina bitova jest broj znamenki u zapisu broja n u bazi 2. Poseban slučaj n = 0 ima duljinu bitova 1.
Za negativne cijele brojeve upotrebljava se komplement dvojke, standardni način na koji računala pohranjuju brojeve s predznakom. Duljina bitova negativnog cijelog broja najmanji je broj bitova u koji se on može smjestiti u obliku komplementa dvojke. Na primjer, −128 stane u 8 bitova (kao 10000000), ali za −129 potrebno je 9 bitova jer se s 8 bitova može prikazati najmanje −128.
Nakon određivanja duljine bitova, duljina bajtova dobiva se zaokruživanjem prema gore na najbliži cijeli bajt:
Duljina bajtova = ⌈duljina bitova ÷ 8⌉
Simbol ⌈ ⌉ znači „zaokruži prema gore”. Vrijednost od 9 bitova i dalje zahtijeva 2 puna bajta jer se bajt ne može dijeliti.
Primjer izračuna
| Cijeli broj | Duljina bitova | Duljina bajtova |
|---|---|---|
| 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 |
Kako izračunati duljinu bitova heksadecimalnog niza
Svaka heksadecimalna znamenka (0–9, A–F) predstavlja točno 4 bita jer 4 bita mogu sadržavati 16 mogućih vrijednosti.
Formula: duljina bitova = broj heksadecimalnih znamenki × 4. Duljina bajtova ponovno je duljina bitova podijeljena s 8 i zaokružena prema gore.
Na primjer, heksadecimalni niz „FF” ima 2 znamenke, pa je njegova duljina bitova 2 × 4 = 8 bitova, odnosno 1 bajt. Heksadecimalni niz „ABCD” ima 4 znamenke, što daje 16 bitova, odnosno 2 bajta. Razmaci i drugi prazni znakovi uklanjaju se prije brojanja. Neparan broj znamenki i dalje se zaokružuje na cijeli bajt: „F” ima 4 bita, a kalkulator ga prikazuje kao 1 bajt.
Kako izračunati duljinu bajtova tekstualnog niza
Kod teksta veličina ovisi o kodiranju znakova, pravilu kojim se znakovi pretvaraju u bajtove. Kalkulator podržava pet kodiranja:
- UTF-8: kodiranje promjenjive duljine koje se upotrebljava na cijelom webu. Svaki znak zauzima od 1 do 4 bajta. Obična engleska slova, znamenke i interpunkcijski znakovi zauzimaju po 1 bajt.
- UTF-16: upotrebljava se interno u JavaScriptu i sustavu Windows. Većina znakova zauzima 2 bajta; znakovi izvan osnovne višejezične ravnine, poput mnogih emotikona, zauzimaju 4 bajta.
- UTF-32: kodiranje fiksne duljine. Svaki znak zauzima točno 4 bajta, neovisno o tome koji je znak.
- ASCII: kodiranje od 7 bitova koje obuhvaća 128 znakova, uglavnom engleska slova, znamenke i osnovne interpunkcijske znakove. Svaki znak zauzima 1 bajt. Svaki znak izvan tog skupa odbacuje se.
- Latin-1 (ISO-8859-1): kodiranje od 8 bitova koje obuhvaća 256 znakova, uključujući naglašena slova koja se upotrebljavaju u zapadnoeuropskim jezicima. Svaki znak zauzima 1 bajt. Znakovi izvan tog skupa odbacuju se.
Formula: duljina bajtova = broj bajtova koje kodiranje proizvede za niz. Duljina bitova = duljina bajtova × 8.
Broje se samo znakovi teksta. Ne dodaje se oznaka redoslijeda bajtova, pa je broj za UTF-16 ili UTF-32 ovdje za 2 odnosno 4 bajta manji nego kod alata koji na početak zapisa dodaje takvu oznaku.
Primjer izračuna
Tekst „Hello, world!” ima 13 znakova, a svi su obična ASCII slova i interpunkcijski znakovi.
- UTF-8: 13 bajtova (104 bitova), jer svaki znak zauzima 1 bajt.
- UTF-16: 26 bajtova (208 bitova), jer svaki znak zauzima 2 bajta.
Tekst „こんにちは世界” (sedam japanskih znakova) zauzima 3 bajta po znaku u kodiranju UTF-8, što daje 21 bajt (168 bitova).
Emotikon poput 😀 nalazi se izvan osnovne višejezične ravnine. U kodiranju UTF-8 zauzima 4 bajta, u UTF-16 zauzima 4 bajta (kao zamjenski par), a u UTF-32 zauzima 4 bajta.
Zašto cijeli brojevi s predznakom mijenjaju rezultat
Računala pohranjuju negativne brojeve komplementom dvojke, a ne običnim predznakom minus. Zato duljina bitova negativnog cijelog broja nije jednostavno duljina bitova njegove apsolutne vrijednosti uvećana za jedan. Pravilo glasi: duljina bitova najmanji je broj bitova k takav da je vrijednost najmanje −2^(k−1). Zato −128 (što je jednako −2⁷) stane u 8 bitova, dok je za −129 potrebno 9 bitova.
Često postavljana pitanja
Kako pretvoriti bajtove u bitove? Pomnožite s 8. Deset bajtova jednako je 80 bitova jer svaki bajt prema definiciji sadrži 8 bitova.
Koja je razlika između duljine bitova i duljine bajtova? Duljina bitova broji pojedinačne binarne znamenke. Duljina bajtova broji skupine od 8 bitova, zaokružene prema gore na sljedeći cijeli bajt kada duljina bitova nije višekratnik broja 8.
Koliko bajtova zauzima znak UTF-8? Između 1 i 4 bajta. Znakovi koji su zajednički s ASCII-jem zauzimaju 1 bajt. Mnogi naglašeni latinični, grčki i ćirilični znakovi zauzimaju 2 bajta. Većina kineskih, japanskih i korejskih znakova zauzima 3 bajta. Emotikoni i drugi rijetki simboli zauzimaju 4 bajta.
Kako se izračunava duljina bajtova heksadecimalnog niza? Prebrojite heksadecimalne znamenke nakon uklanjanja bjelina, pomnožite ih s 4 da biste dobili bitove, a zatim zaokružite prema gore na cijele bajtove. Svaki bajt čine 2 heksadecimalne znamenke, pa je „FF” 1 bajt, a „ABCD” 2 bajta. Samotna znamenka poput „F” ima 4 bita, ali i dalje zauzima 1 bajt.
Zašto negativnom cijelom broju katkad treba više bitova nego njegovu pozitivnom parnjaku? Komplement dvojke upotrebljava jedan bit za označavanje predznaka, ali taj se bit dijeli s rasponom vrijednosti, a ne dodaje povrh njega u svakom slučaju. −128 stane u istih 8 bitova kao i pozitivne vrijednosti do 127, ali −129 više ne stane u 8 bitova i potrebno mu je 9.
Koje veličine ulaza prihvaća ovaj kalkulator? Cijele brojeve, heksadecimalne nizove i tekstualne nizove duljine do 1.000.000 znakova.
Reference
- "Character encoding." Wikipedia, Zaklada Wikimedia. 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." Wikipedia, Zaklada Wikimedia. https://en.wikipedia.org/wiki/Two%27s_complement