Hopp til innhold

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

Inngangstype
bits
8
bytes
1

8 bits = 1 bytes

Visualisering

Byte 1
11111111
0xFF
Lastekalkulator...
📚

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

HeltallBitlengdeBytelengde
011
25581
25692
−12881
−12992
18,446,744,073,709,551,615 (2⁶⁴ − 1)648

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

  1. "Character encoding." Wikipedia, 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." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Two%27s_complement