Kalkulačka délky bitů a bajtů - Bezplatný nástroj pro velikost dat
Počítejte délky bitů a bajtů pro celá čísla, hexadecimální řetězce a text s kódováním UTF-8, UTF-16, ASCII. Bezplatný online nástroj pro vývojáře, datové vědce a síťové inženýry.
Kalkulačka délky bitů a bajtů
8 bitů = 1 bajtů
Vizualizace
Dokumentace
Co je kalkulačka délky v bitech a bajtech?
Kalkulačka délky v bitech a bajtech určuje, kolik bitů a bajtů datová položka potřebuje. Bit je jediná binární číslice, 0 nebo 1. Bajt je skupina 8 bitů. Kalkulačka přijímá celé číslo, hexadecimální řetězec nebo textový řetězec a uvádí přesnou velikost v obou jednotkách.
To je důležité při programování, práci se sítěmi a ukládání dat. Databázový sloupec, síťový paket i soubor na disku mají velikost měřenou v bajtech a tato velikost závisí na tom, jak jsou data zapsána.
Jak vypočítat bitovou délku celého čísla
Bitová délka kladného celého čísla je počet číslic v jeho binárním zápisu. Například 255 je v binární soustavě 11111111, což má 8 číslic, takže jeho bitová délka je 8.
Vzorec: pro kladné celé číslo n je bitová délka počtem číslic v zápisu čísla n v poziční soustavě o základu 2. Ve zvláštním případě n = 0 je bitová délka 1.
Záporná celá čísla používají dvojkový doplněk, standardní způsob, jakým počítače ukládají čísla se znaménkem. Bitová délka záporného celého čísla je nejmenší počet bitů, který je v zápisu dvojkovým doplňkem pojme. Například −128 se vejde do 8 bitů (jako 10000000), ale −129 potřebuje 9 bitů, protože celé číslo se znaménkem o 8 bitech má rozsah od −128 do 127.
Jakmile je známa bitová délka, délka v bajtech se zjistí zaokrouhlením nahoru na nejbližší celý bajt:
Délka v bajtech = ⌈bitová délka ÷ 8⌉
Symbol ⌈ ⌉ znamená „zaokrouhlit nahoru“. Hodnota o délce 9 bitů stále potřebuje 2 celé bajty, protože bajt nelze rozdělit.
Praktické příklady
| Celé číslo | Bitová délka | Délka v bajtech |
|---|---|---|
| 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 |
Jak vypočítat bitovou délku hexadecimálního řetězce
Každá hexadecimální číslice (0–9, A–F) představuje přesně 4 bity, protože 4 bity mohou obsahovat 16 možných hodnot.
Vzorec: bitová délka = počet hexadecimálních číslic × 4. Délka v bajtech je opět bitová délka dělená 8 a zaokrouhlená nahoru.
Například hexadecimální řetězec „FF“ má 2 číslice, takže jeho bitová délka je 2 × 4 = 8 bitů, tedy 1 bajt. Hexadecimální řetězec „ABCD“ má 4 číslice, což dává 16 bitů, tedy 2 bajty. Mezery uvnitř řetězce se před počítáním ignorují.
Jak vypočítat délku textového řetězce v bajtech
U textu závisí velikost na kódování znaků, tedy na pravidle, podle kterého se znaky převádějí na bajty. Kalkulačka podporuje pět kódování:
- UTF-8: kódování s proměnnou délkou, které se používá na celém webu. Každý znak zabere 1 až 4 bajty. Běžná anglická písmena, číslice a interpunkce zabírají každé 1 bajt.
- UTF-16: používá se interně v JavaScriptu a ve Windows. Každý znak tvoří jedna nebo dvě 16bitové jednotky. Většina znaků zabere 2 bajty; znaky mimo základní vícejazyčnou rovinu (Basic Multilingual Plane), například mnoho emoji, zabírají 4 bajty.
- UTF-32: kódování s pevnou délkou. Každý znak zabírá přesně 4 bajty bez ohledu na to, o jaký znak jde.
- ASCII: 7bitové kódování uložené po jednom znaku v 8bitovém bajtu, které pokrývá 128 znaků, hlavně anglická písmena, číslice a základní interpunkci. Každý znak zabere 1 bajt. Jakýkoli znak mimo tuto sadu je odmítnut.
- Latin-1 (ISO-8859-1): 8bitové kódování pokrývající 256 znaků a doplňující znaky s diakritikou používané v západoevropských jazycích. Každý znak zabírá 1 bajt. Znaky mimo tuto množinu jsou odmítnuty.
Vzorec: délka v bajtech = počet bajtů, které kódování vytvoří pro daný řetězec. Bitová délka = délka v bajtech × 8.
Praktické příklady
Text „Hello, world!“ má 13 znaků, všechny tvoří běžná písmena a interpunkční znaménka ASCII.
- UTF-8: 13 bajtů (104 bitů), protože každý znak se vejde do 1 bajtu.
- UTF-16: 26 bajtů (208 bitů), protože každý znak zabírá 2 bajty.
Text „こんにちは世界“ (sedm japonských znaků) zabere 3 bajty na znak v UTF-8, což dává 21 bajtů (168 bitů).
Emoji, například 😀, leží mimo základní vícejazyčnou rovinu. V UTF-8 zabírá 4 bajty, v UTF-16 4 bajty (jako náhradní dvojice) a v UTF-32 4 bajty.
Proč celá čísla se znaménkem mění výsledek
Počítače ukládají záporná čísla pomocí dvojkového doplňku, nikoli jako běžné číslo se znaménkem minus. Bitová délka záporného celého čísla proto není jednoduše bitová délka jeho absolutní hodnoty plus jedna. Pravidlo zní: bitová délka je nejmenší počet bitů k, pro který je hodnota alespoň −2^(k−1). Proto se −128 (což se rovná −2⁷) vejde do 8 bitů, zatímco −129 potřebuje 9 bitů.
Často kladené otázky
Jak převedu bajty na bity? Vynásobte je číslem 8. Deset bajtů se rovná 80 bitům, protože každý bajt má podle definice 8 bitů.
Jaký je rozdíl mezi bitovou délkou a délkou v bajtech? Bitová délka počítá jednotlivé binární číslice. Délka v bajtech počítá skupiny 8 bitů a zaokrouhluje nahoru na další celý bajt, pokud bitová délka není násobkem 8.
Kolik bajtů zabírá znak UTF-8? Mezi 1 a 4. Znaky společné s ASCII zabírají 1 bajt. Mnoho latinských znaků s diakritikou a řeckých a cyrilských znaků zabírá 2 bajty. Většina čínských, japonských a korejských znaků zabírá 3 bajty. Emoji a další vzácné symboly zabírají 4 bajty.
Jak se vypočítá délka hexadecimálního řetězce v bajtech? Spočítejte hexadecimální číslice po odstranění mezer, vynásobte je 4 a získáte bity, pak vydělte 8 a zaokrouhlete nahoru. „FF“ je 1 bajt; „ABCD“ jsou 2 bajty. Lichý počet číslic, například „ABC“ (12 bitů), stále vyžaduje 2 bajty.
Proč záporné celé číslo někdy potřebuje více bitů než jeho kladný protějšek? Dvojkový doplněk používá jeden bit k označení znaménka, ale tento bit je součástí rozsahu hodnot, místo aby se ve všech případech přidával navíc. −128 se vejde do stejných 8 bitů jako kladné hodnoty až do 127, ale −129 se již do 8 bitů nevejde a potřebuje 9.
Jak velké vstupy tato kalkulačka přijímá? Celá čísla, hexadecimální řetězce a textové řetězce dlouhé až 1 000 000 znaků.
Reference
- Unicode, Inc. FAQ: UTF-8, UTF-16, UTF-32 & BOM. Časté dotazy ke kódování Unicode — každý znak tvoří v UTF-8 jeden až čtyři 8bitové bajty, v UTF-16 jednu nebo dvě 16bitové kódové jednotky, nebo v UTF-32 jedinou 32bitovou kódovou jednotku.
- Internet Engineering Task Force. RFC 3629: UTF-8, a transformation format of ISO 10646. RFC 3629 — UTF-8 používá 1 až 4 oktety; U+0000–U+007F zabírají 1 bajt, U+0080–U+07FF 2 bajty, U+0800–U+FFFF 3 bajty a U+10000 a výše 4 bajty.
- Internet Engineering Task Force. RFC 20: ASCII format for network interchange. RFC 20 — standardní 7bitové ASCII vložené do 8bitového bajtu.
- Oracle. The Java Language Specification, Java SE 21, Chapter 4: Types, Values, and Variables. Kapitola 4 specifikace JLS — byte je 8bitové celé číslo se znaménkem ve dvojkovém doplňku s rozsahem −128 až 127.