Kalkulačka dĺžky bitov a bajtov - Bezplatný nástroj na veľkosť dát
Počítajte dĺžky bitov a bajtov pre celé čísla, hexadecimálne reťazce a text s kódovaním UTF-8, UTF-16, ASCII. Bezplatný online nástroj pre vývojárov, dátových vedcov a sieťových inžinierov.
Kalkulačka dĺžky bitov a bajtov
8 bitov = 1 bajtov
Vizualizácia
Dokumentácia
Čo je kalkulačka dĺžky bitov a bajtov?
Kalkulačka dĺžky bitov a bajtov určuje, koľko bitov a bajtov potrebuje určitá časť údajov. Bit je jediná binárna číslica, 0 alebo 1. Bajt je skupina 8 bitov. Kalkulačka prijíma celé číslo, hexadecimálny reťazec alebo textový reťazec a uvádza presnú veľkosť v oboch jednotkách.
To je dôležité pri programovaní, sieťovej komunikácii a ukladaní údajov. Stĺpec databázy, sieťový paket aj súbor na disku majú veľkosť meranú v bajtoch a táto veľkosť závisí od spôsobu zápisu údajov.
Ako vypočítať bitovú dĺžku celého čísla
Bitová dĺžka kladného celého čísla je počet číslic v jeho binárnom zápise. Napríklad 255 má v binárnej sústave zápis 11111111, ktorý obsahuje 8 číslic, takže jeho bitová dĺžka je 8.
Vzorec: pre kladné celé číslo n je bitová dĺžka počtom číslic v zápise čísla n v číselnej sústave so základom 2. Osobitný prípad n = 0 má bitovú dĺžku 1.
Záporné celé čísla používajú dvojkový doplnok, štandardný spôsob, akým počítače ukladajú čísla so znamienkom. Bitová dĺžka záporného celého čísla je najmenší počet bitov, do ktorého sa toto číslo zmestí v tvare dvojkového doplnku. Napríklad −128 sa zmestí do 8 bitov (ako 10000000), ale −129 potrebuje 9 bitov, pretože 8 bitov môže obsahovať hodnoty iba po −128.
Keď poznáme bitovú dĺžku, bajtová dĺžka sa zistí zaokrúhlením nahor na najbližší celý bajt:
Bajtová dĺžka = ⌈bitová dĺžka ÷ 8⌉
Symbol ⌈ ⌉ znamená „zaokrúhliť nahor“. Hodnota s dĺžkou 9 bitov stále potrebuje 2 celé bajty, pretože bajt nemožno rozdeliť.
Vyriešený príklad
| Celé číslo | Bitová dĺžka | Bajtová dĺžka |
|---|---|---|
| 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 |
Ako vypočítať bitovú dĺžku hexadecimálneho reťazca
Každá hexadecimálna číslica (0–9, A–F) predstavuje presne 4 bity, pretože 4 bity môžu obsahovať 16 možných hodnôt.
Vzorec: bitová dĺžka = počet hexadecimálnych číslic × 4. Bajtová dĺžka je opäť bitová dĺžka vydelená 8 a zaokrúhlená nahor.
Napríklad hexadecimálny reťazec „FF“ má 2 číslice, takže jeho bitová dĺžka je 2 × 4 = 8 bitov alebo 1 bajt. Hexadecimálny reťazec „ABCD“ má 4 číslice, čo predstavuje 16 bitov alebo 2 bajty. Medzery a iné biele znaky sa pred počítaním odstránia. Nepárny počet číslic sa stále zaokrúhľuje nahor na celý bajt: „F“ má 4 bity, čo kalkulačka uvedie ako 1 bajt.
Ako vypočítať bajtovú dĺžku textového reťazca
Pri texte závisí veľkosť od kódovania znakov, teda pravidla používaného na prevod znakov na bajty. Kalkulačka podporuje päť kódovaní:
- UTF-8: kódovanie s premenlivou dĺžkou používané na celom webe. Každý znak zaberá 1 až 4 bajty. Bežné anglické písmená, číslice a interpunkčné znamienka zaberajú po 1 bajte.
- UTF-16: používa sa interne v JavaScripte a systéme Windows. Väčšina znakov zaberá 2 bajty; znaky mimo základnej viacjazyčnej roviny, napríklad mnohé emoji, zaberajú 4 bajty.
- UTF-32: kódovanie s pevnou dĺžkou. Každý znak zaberá presne 4 bajty bez ohľadu na to, o ktorý znak ide.
- ASCII: 7-bitové kódovanie zahŕňajúce 128 znakov, najmä anglické písmená, číslice a základné interpunkčné znamienka. Každý znak zaberá 1 bajt. Každý znak mimo tejto množiny sa odmietne.
- Latin-1 (ISO-8859-1): 8-bitové kódovanie zahŕňajúce 256 znakov a pridávajúce písmená s diakritikou používané v západoeurópskych jazykoch. Každý znak zaberá 1 bajt. Znaky mimo tejto množiny sa odmietnu.
Vzorec: bajtová dĺžka = počet bajtov, ktoré kódovanie vytvorí pre daný reťazec. Bitová dĺžka = bajtová dĺžka × 8.
Počty sa týkajú samotného textu. Nepridáva sa značka poradia bajtov, takže počet pre UTF-16 alebo UTF-32 je 2 alebo 4 bajty menší než počet z nástroja, ktorý zapisuje značku na začiatok.
Vyriešený príklad
Text „Hello, world!“ má 13 znakov, pričom všetky sú bežné ASCII písmená a interpunkčné znamienka.
- UTF-8: 13 bajtov (104 bitov), pretože každý znak sa zmestí do 1 bajtu.
- UTF-16: 26 bajtov (208 bitov), pretože každý znak zaberá 2 bajty.
Text „こんにちは世界“ (sedem japonských znakov) zaberá v UTF-8 3 bajty na znak, teda 21 bajtov (168 bitov).
Emoji, napríklad 😀, leží mimo základnej viacjazyčnej roviny. V UTF-8 zaberá 4 bajty, v UTF-16 4 bajty (ako náhradná dvojica) a v UTF-32 4 bajty.
Prečo celé čísla so znamienkom menia výsledok
Počítače ukladajú záporné čísla pomocou dvojkového doplnku, nie obyčajného znamienka mínus. Bitová dĺžka záporného celého čísla preto nie je jednoducho bitovou dĺžkou jeho absolútnej hodnoty zväčšenou o jeden. Pravidlo znie: bitová dĺžka je najmenší počet bitov k, pre ktorý je hodnota aspoň −2^(k−1). Preto sa −128 (čo sa rovná −2⁷) zmestí do 8 bitov, zatiaľ čo −129 potrebuje 9.
Najčastejšie otázky
Ako prevediem bajty na bity? Vynásobte ich číslom 8. Desať bajtov sa rovná 80 bitom, pretože každý bajt obsahuje podľa definície 8 bitov.
Aký je rozdiel medzi bitovou a bajtovou dĺžkou? Bitová dĺžka počíta jednotlivé binárne číslice. Bajtová dĺžka počíta skupiny 8 bitov a zaokrúhľuje nahor na najbližší celý bajt, ak bitová dĺžka nie je násobkom 8.
Koľko bajtov používa znak UTF-8? Od 1 do 4. Znaky spoločné s ASCII používajú 1 bajt. Mnohé latinské znaky s diakritikou, grécke a cyrilské znaky používajú 2 bajty. Väčšina čínskych, japonských a kórejských znakov používa 3 bajty. Emoji a iné zriedkavé symboly používajú 4 bajty.
Ako sa vypočíta bajtová dĺžka hexadecimálneho reťazca? Po odstránení bielych znakov spočítajte hexadecimálne číslice, vynásobte ich číslom 4, čím získate počet bitov, a potom zaokrúhlite nahor na celé bajty. Každý bajt tvoria 2 hexadecimálne číslice, takže „FF“ je 1 bajt a „ABCD“ sú 2 bajty. Samostatná číslica, napríklad „F“, má 4 bity, ktoré stále zaberajú 1 bajt.
Prečo záporné celé číslo niekedy potrebuje viac bitov než jeho kladný náprotivok? Dvojkový doplnok používa jeden bit na označenie znamienka, ale tento bit je súčasťou rozsahu hodnôt, nie je pridaný navyše v každom prípade. −128 sa zmestí do rovnakých 8 bitov ako kladné hodnoty až po 127, ale −129 sa už do 8 bitov nezmestí a potrebuje 9.
Aké veľké vstupy táto kalkulačka prijíma? Celé čísla, hexadecimálne reťazce a textové reťazce s dĺžkou do 1 000 000 znakov.
Referencie
- "Character encoding." Wikipedia, Wikimedia Foundation. 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, Wikimedia Foundation. https://en.wikipedia.org/wiki/Two%27s_complement