Přeskočit na obsah

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ů

Typ vstupu
bitů
8
bajtů
1

8 bitů = 1 bajtů

Vizualizace

Bajt 1
11111111
0xFF
Kalkulačka načítání...
📚

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, což je standardní způsob ukládání čísel se znaménkem v počítačích. Bitová délka záporného celého čísla je nejmenší počet bitů, do kterého se toto číslo vejde v podobě dvojkového doplňku. Například −128 se vejde do 8 bitů (jako 10000000), ale −129 potřebuje 9 bitů, protože 8 bitů může sahat nejníže po −128.

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.

Příklad výpočtu

Celé čísloBitová délkaDélka v bajtech
011
25581
25692
−12881
−12992
18,446,744,073,709,551,615 (2⁶⁴ − 1)648

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ů neboli 1 bajt. Hexadecimální řetězec „ABCD“ má 4 číslice, což dává 16 bitů neboli 2 bajty. Před počítáním se mezery a další bílé znaky odstraní. I lichý počet číslic se zaokrouhluje nahoru na celý bajt: „F“ má 4 bity, které kalkulačka uvádí jako 1 bajt.

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 používané na webu. Každý znak zabírá 1 až 4 bajty. Běžná anglická písmena, číslice a interpunkční znaménka zabírají vždy 1 bajt.
  • UTF-16: používá se interně v JavaScriptu a Windows. Většina znaků zabírá 2 bajty; znaky mimo základní vícejazyčnou rovinu, 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í pokrývající 128 znaků, především anglická písmena, číslice a základní interpunkční znaménka. Každý znak zabírá 1 bajt. Jakýkoli znak mimo tuto množinu 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.

Počty se vztahují pouze na samotný text. Značka pořadí bajtů se nepřidává, takže počet pro UTF-16 nebo UTF-32 je zde o 2 nebo 4 bajty menší než u nástroje, který na začátek zapisuje tuto značku.

Příklad výpočtu

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ů) zabírá v UTF-8 3 bajty na znak, tedy celkem 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? Po odstranění bílých znaků spočítejte hexadecimální číslice, vynásobte jejich počet číslem 4, čímž získáte počet bitů, a poté zaokrouhlete nahoru na celé bajty. Každý bajt odpovídá 2 hexadecimálním číslicím, takže „FF“ je 1 bajt a „ABCD“ jsou 2 bajty. Samostatná číslice, například „F“, má 4 bity, ale stále zabírá 1 bajt.

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

  1. "Character encoding." Wikipedie, Wikimedia Foundation. https://en.wikipedia.org/wiki/Character_encoding
  2. "UTF-8, UTF-16, UTF-32 & BOM." Unicode, Inc. https://www.unicode.org/faq/utf_bom.html
  3. "Two's complement." Wikipedie, Wikimedia Foundation. https://en.wikipedia.org/wiki/Two%27s_complement