Bit- og byttelengdekalkulator - Gratis datastørrelsesverktøy
Beregn bit- og byttelengder for heltall, heksadesimale strenger og tekst med UTF-8, UTF-16, ASCII-kodinger. Gratis online verktøy for utviklere, dataforskere og nettverksingeniører.
Bit- og byte-lengdekalkulator
8 bits = 1 bytes
Visualisering
Dokumentasjon
Hva er en kalkulator for bit- og bytelengde?
En kalkulator for bit- og bytelengde finner ut hvor mange bit og byte et datastykke trenger. Et bit er ett binært siffer, 0 eller 1. En byte er en gruppe på 8 bit. Kalkulatoren godtar et heltall, en heksadesimal streng eller en tekststreng, og oppgir den nøyaktige størrelsen i begge enhetene.
Dette er relevant for programmering, nettverk og datalagring. En kolonne i en database, en nettverkspakke og en fil på disken har alle en størrelse målt i byte, og denne størrelsen avhenger av hvordan dataene er skrevet.
Slik beregner du bitlengden til et heltall
Bitlengden til et positivt heltall er antallet sifre i den binære formen. For eksempel er 255 i binær form 11111111, som har 8 sifre, så bitlengden er 8.
Formel: For et positivt heltall n er bitlengden antallet sifre i representasjonen av n med grunntall 2. Spesialtilfellet n = 0 har bitlengden 1.
Negative heltall bruker toskomplement, den vanlige måten datamaskiner lagrer fortegnede tall på. Bitlengden til et negativt heltall er det minste antallet bit som kan inneholde tallet i toskomplementform. For eksempel får −128 plass i 8 bit (som 10000000), men −129 trenger 9 bit, fordi 8 bit bare kan gå ned til −128.
Når bitlengden er kjent, finner man bytelengden ved å runde opp til nærmeste hele byte:
Bytelengde = ⌈bitlengde ÷ 8⌉
Symbolet ⌈ ⌉ betyr «rund opp». En verdi på 9 bit trenger fortsatt 2 hele byte, fordi en byte ikke kan deles opp.
Regneeksempel
| Heltall | Bitlengde | Bytelengde |
|---|---|---|
| 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 |
Slik beregner du bitlengden til en heksadesimal streng
Hvert heksadesimale siffer (0–9, A–F) representerer nøyaktig 4 bit, fordi 4 bit kan inneholde 16 mulige verdier.
Formel: bitlengde = antall heksadesimale sifre × 4. Bytelengden er igjen bitlengden delt på 8, avrundet opp.
For eksempel har den heksadesimale strengen «FF» 2 sifre, så bitlengden er 2 × 4 = 8 bit, eller 1 byte. Den heksadesimale strengen «ABCD» har 4 sifre, som gir 16 bit, eller 2 byte. Mellomrom og annet blanktegn fjernes før opptellingen. Et oddetall sifre rundes fortsatt opp til en hel byte: «F» er 4 bit, som kalkulatoren oppgir som 1 byte.
Slik beregner du bytelengden til en tekststreng
For tekst avhenger størrelsen av tegnkodingen, altså regelen som brukes til å omgjøre tegn til byte. Kalkulatoren støtter fem tegnkodinger:
- UTF-8: en variabelbreddet tegnkoding som brukes på nettet. Hvert tegn bruker fra 1 til 4 byte. Vanlige engelske bokstaver, sifre og skilletegn bruker 1 byte hver.
- UTF-16: brukes internt av JavaScript og Windows. De fleste tegn bruker 2 byte; tegn utenfor Basic Multilingual Plane, for eksempel mange emojier, bruker 4 byte.
- UTF-32: en tegnkoding med fast bredde. Hvert tegn bruker nøyaktig 4 byte, uavhengig av hvilket tegn det er.
- ASCII: en 7-bits tegnkoding som dekker 128 tegn, hovedsakelig engelske bokstaver, sifre og grunnleggende skilletegn. Hvert tegn bruker 1 byte. Tegn utenfor dette settet avvises.
- Latin-1 (ISO-8859-1): en 8-bits tegnkoding som dekker 256 tegn, inkludert aksenttegn som brukes i vesteuropeiske språk. Hvert tegn bruker 1 byte. Tegn utenfor dette settet avvises.
Formel: bytelengde = antall byte tegnkodingen produserer for strengen. Bitlengde = bytelengde × 8.
Opptellingene gjelder selve teksten. Det legges ikke til noe byteordemerke, så en opptelling med UTF-16 eller UTF-32 her er 2 eller 4 byte mindre enn en opptelling fra et verktøy som skriver en markør i begynnelsen.
Regneeksempel
Teksten «Hello, world!» har 13 tegn, alle vanlige ASCII-bokstaver og skilletegn.
- UTF-8: 13 byte (104 bit), siden hvert tegn får plass i 1 byte.
- UTF-16: 26 byte (208 bit), siden hvert tegn bruker 2 byte.
Teksten «こんにちは世界» (sju japanske tegn) bruker 3 byte per tegn i UTF-8, noe som gir 21 byte (168 bit).
En emoji som 😀 ligger utenfor Basic Multilingual Plane. Den bruker 4 byte i UTF-8, 4 byte i UTF-16 (som et surrogatpar) og 4 byte i UTF-32.
Hvorfor fortegnede heltall endrer svaret
Datamaskiner lagrer negative tall med toskomplement i stedet for et vanlig minustegn. Det betyr at bitlengden til et negativt heltall ikke bare er bitlengden til absoluttverdien pluss én. Regelen er at bitlengden er det minste antallet bit k der verdien er minst −2^(k−1). Derfor får −128 (som er lik −2⁷) plass i 8 bit, mens −129 trenger 9.
Ofte stilte spørsmål
Hvordan konverterer jeg byte til bit? Multipliser med 8. Ti byte tilsvarer 80 bit, fordi hver byte per definisjon inneholder 8 bit.
Hva er forskjellen mellom bitlengde og bytelengde? Bitlengde teller individuelle binære sifre. Bytelengde teller grupper på 8 bit, avrundet opp til neste hele byte når bitlengden ikke er et multiplum av 8.
Hvor mange byte bruker et UTF-8-tegn? Mellom 1 og 4. Tegn som finnes i ASCII, bruker 1 byte. Mange aksenttegn i det latinske alfabetet samt greske og kyrilliske tegn bruker 2 byte. De fleste kinesiske, japanske og koreanske tegn bruker 3 byte. Emojier og andre sjeldne symboler bruker 4 byte.
Hvordan beregnes bytelengden til en heksadesimal streng? Tell de heksadesimale sifrene etter at blanktegn er fjernet, multipliser med 4 for å få bit, og rund deretter opp til hele byte. Hver byte er 2 heksadesimale sifre, så «FF» er 1 byte og «ABCD» er 2 byte. Ett enkelt siffer, for eksempel «F», er 4 bit, men opptar likevel 1 byte.
Hvorfor trenger et negativt heltall noen ganger flere bit enn det tilsvarende positive tallet? Toskomplement bruker ett bit til å angi fortegnet, men dette bitet inngår i verdiområdet i stedet for å komme i tillegg i alle tilfeller. −128 får plass i de samme 8 bitene som positive verdier opptil 127, men −129 får ikke lenger plass i 8 bit og trenger 9.
Hvilke inndatastørrelser godtar denne kalkulatoren? Heltall, heksadesimale strenger og tekststrenger på opptil 1 000 000 tegn.
Referanser
- "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