Bit és Bájt Hosszúság Kalkulátor - Ingyenes Adatméret Eszköz
Számítsa ki a bitek és bájtok hosszát egész számokhoz, hexadecimális karakterláncokhoz és szövegekhez UTF-8, UTF-16, ASCII kódolásokkal. Ingyenes online eszköz fejlesztőknek, adattudósoknak és hálózatmérnököknek.
Bit és Bájt Hossz Kalkulátor
8 bitek = 1 bájtok
Vizualizáció
Dokumentáció
Mi az a bit- és bájthossz-kalkulátor?
A bit- és bájthossz-kalkulátor megállapítja, hogy egy adatrészletnek hány bitre és bájtra van szüksége. A bit egyetlen bináris számjegy, 0 vagy 1. A bájt 8 bitből álló csoport. A kalkulátor egész számot, hexadecimális karakterláncot vagy szöveges karakterláncot fogad el, és mindkét mértékegységben megadja a pontos méretet.
Ez a programozás, a hálózatkezelés és az adattárolás szempontjából fontos. Egy adatbázisoszlop, egy hálózati csomag és egy lemezen tárolt fájl méretét bájtban mérik, ez a méret pedig attól függ, hogyan írják le az adatokat.
Egy egész szám bit hosszának kiszámítása
Egy pozitív egész szám bithossza a bináris alakjában szereplő számjegyek száma. Például 255 binárisan 11111111, amely 8 számjegyből áll, így a bit hossza 8.
Képlet: egy pozitív n egész szám bithossza az n alap-2-es alakjában szereplő számjegyek száma. A különleges n = 0 esetében a bithossz 1.
A negatív egész számok kettes komplemensű ábrázolást használnak, amely az előjeles számok számítógépes tárolásának szabványos módja. Egy negatív egész szám bithossza a kettes komplemensű alakban való tárolásához szükséges legkisebb bitszám. Például −128 elfér 8 biten (alakja 10000000), −129 azonban 9 bitet igényel, mert 8 bit csak −128-ig képes eljutni.
Ha a bithossz ismert, a bájthossz a legközelebbi egész bájtra felfelé kerekítve határozható meg:
Bájthossz = ⌈bithossz ÷ 8⌉
A ⌈ ⌉ jelölés jelentése: „felfelé kerekítés”. Egy 9 bites értékhez továbbra is 2 teljes bájt szükséges, mert egy bájt nem osztható fel.
Megoldott példa
| Egész szám | Bithossz | Bájthossz |
|---|---|---|
| 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 |
Hexadecimális karakterlánc bit hosszának kiszámítása
Minden hexadecimális számjegy (0–9, A–F) pontosan 4 bitet jelöl, mivel 4 bit 16 lehetséges értéket képes tárolni.
Képlet: bithossz = hexadecimális számjegyek száma × 4. A bájthossz ismét a bithossz 8-cal való osztásának felfelé kerekített eredménye.
Például az „FF” hexadecimális karakterláncban 2 számjegy van, így a bithossza 2 × 4 = 8 bit, azaz 1 bájt. Az „ABCD” hexadecimális karakterláncban 4 számjegy van, ami 16 bitet, azaz 2 bájtot jelent. A szóközöket és az egyéb üres karaktereket a számlálás előtt eltávolítják. A páratlan számú számjegyet is felfelé kerekítik egy egész bájtra: az „F” 4 bit, amelyet a kalkulátor 1 bájtként ad meg.
Szöveges karakterlánc bájthosszának kiszámítása
Szöveg esetén a méret a karakterkódolástól, vagyis a karakterek bájtokká alakításának szabályától függ. A kalkulátor öt kódolást támogat:
- UTF-8: változó hosszúságú kódolás, amelyet az interneten széles körben használnak. Minden karakter 1–4 bájtot foglal. Az egyszerű angol betűk, számjegyek és írásjelek egyenként 1 bájtot foglalnak.
- UTF-16: a JavaScript és a Windows belsőleg ezt használja. A legtöbb karakter 2 bájtot foglal; az alapszintű többnyelvű síkon kívüli karakterek, például sok emoji, 4 bájtot igényelnek.
- UTF-32: rögzített hosszúságú kódolás. Minden karakter pontosan 4 bájtot foglal, függetlenül attól, hogy melyik karakterről van szó.
- ASCII: 7 bites kódolás, amely 128 karaktert, főként angol betűket, számjegyeket és alapvető írásjeleket tartalmaz. Minden karakter 1 bájtot foglal. A készleten kívüli karaktereket elutasítja.
- Latin-1 (ISO-8859-1): 8 bites kódolás, amely 256 karaktert tartalmaz, beleértve a nyugat-európai nyelvekben használt ékezetes betűket is. Minden karakter 1 bájtot foglal. A készleten kívüli karaktereket elutasítja.
Képlet: bájthossz = a kódolás által a karakterlánchoz előállított bájtok száma. Bithossz = bájthossz × 8.
A számítások csak magát a szöveget fedik le. Nem adnak hozzá bájtsorrendjelet, ezért egy itt kapott UTF-16- vagy UTF-32-érték 2, illetve 4 bájttal kisebb annál, amelyet a kezdő jelölést kiíró eszköz ad.
Megoldott példa
A „Hello, world!” szövegben 13 karakter található, amelyek mind egyszerű ASCII-betűk vagy írásjelek.
- UTF-8: 13 bájt (104 bit), mivel minden karakter elfér 1 bájton.
- UTF-16: 26 bájt (208 bit), mivel minden karakter 2 bájtot foglal.
A „こんにちは世界” szöveg (hét japán karakter) karakterenként 3 bájtot foglal UTF-8 kódolásban, így összesen 21 bájt (168 bit).
Egy olyan emoji, mint a 😀, az alapszintű többnyelvű síkon kívül esik. UTF-8 kódolásban 4 bájtot, UTF-16 kódolásban (helyettesítőpárként) 4 bájtot, UTF-32 kódolásban pedig 4 bájtot foglal.
Miért változtatják meg az előjeles egész számok az eredményt?
A számítógépek a negatív számokat nem egyszerű mínuszjellel, hanem kettes komplemensű ábrázolással tárolják. Ez azt jelenti, hogy egy negatív egész szám bithossza nem egyszerűen a szám abszolút értékének bithossza plusz egy. A szabály a következő: a bithossz a legkisebb olyan k bitszám, amelyre az érték legalább −2^(k−1). Ezért fér el −128 (ami −2⁷-tel egyenlő) 8 biten, míg −129 9 bitet igényel.
Gyakran ismételt kérdések
Hogyan alakíthatom át a bájtokat bitekké? Szorozza meg 8-cal. Tíz bájt 80 bitnek felel meg, mert definíció szerint minden bájt 8 bitet tartalmaz.
Mi a különbség a bithossz és a bájthossz között? A bithossz az egyes bináris számjegyeket számolja. A bájthossz 8 bites csoportokat számol, a következő teljes bájtra felfelé kerekítve, ha a bithossz nem 8 többszöröse.
Hány bájtot használ egy UTF-8 karakter? 1 és 4 között. Az ASCII-val közös karakterek 1 bájtot használnak. Sok ékezetes latin, görög és cirill karakter 2 bájtot foglal. A legtöbb kínai, japán és koreai karakter 3 bájtot használ. Az emojik és más ritka szimbólumok 4 bájtot foglalnak.
Hogyan számítják ki egy hexadecimális karakterlánc bájthosszát? A szóközök eltávolítása után számolja meg a hexadecimális számjegyeket, szorozza meg 4-gyel a bitszám meghatározásához, majd kerekítsen felfelé egész bájtokra. Egy bájt 2 hexadecimális számjegy, ezért az „FF” 1 bájt, az „ABCD” pedig 2 bájt. Egyetlen számjegy, például az „F”, 4 bit, és így is 1 bájtot foglal.
Miért igényel egy negatív egész szám néha több bitet, mint a pozitív párja? A kettes komplemensű ábrázolás egy bitet használ az előjel jelölésére, de ez a bit az értéktartomány része, nem pedig minden esetben azon felül hozzáadott bit. −128 ugyanannyi, 8 biten fér el, mint a legfeljebb 127 értékű pozitív számok, −129 azonban már nem fér el 8 biten, és 9 bitet igényel.
Milyen bemeneti méreteket fogad el ez a kalkulátor? Egész számokat, hexadecimális karakterláncokat és legfeljebb 1 000 000 karakter hosszúságú szöveges karakterláncokat.
Hivatkozások
- "Character encoding." Wikipédia, 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." Wikipédia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Two%27s_complement