Spring til indhold

Bit- og Byte-længde Beregner - Gratis Datastørrelses Værktøj

Beregn bit- og byte-længder for heltal, hex-strenge og tekst med UTF-8, UTF-16, ASCII-kodninger. Gratis online værktøj for udviklere, dataforskere og netværksingeniører.

Bit- og Byte-længde Beregner

Input Type
bits
8
bytes
1

8 bits = 1 bytes

Visualisering

Byte 1
11111111
0xFF
Indlæsningsberegner...
📚

Dokumentation

Hvad er en beregner til bit- og bytelængde?

En beregner til bit- og bytelængde finder ud af, hvor mange bit og byte et stykke data kræver. En bit er et enkelt binært ciffer, 0 eller 1. En byte er en gruppe på 8 bit. Beregneren accepterer et heltal, en hexadecimal streng eller en tekststreng og angiver den nøjagtige størrelse i begge enheder.

Dette er relevant for programmering, netværk og datalagring. En databasekolonne, en netværkspakke og en fil på en disk har alle en størrelse målt i byte, og størrelsen afhænger af, hvordan dataene er skrevet.

Sådan beregnes bitlængden af et heltal

Bitlængden af et positivt heltal er antallet af cifre i dets binære form. For eksempel er 255 i binær form 11111111, som har 8 cifre, så bitlængden er 8.

Formel: For et positivt heltal n er bitlængden antallet af cifre i repræsentationen af n i talbasen 2. Det særlige tilfælde n = 0 har en bitlængde på 1.

Negative heltal bruger to-komplement, den almindelige måde, computere lagrer fortegnsbehæftede tal på. Bitlængden af et negativt heltal er det mindste antal bit, der kan rumme det i to-komplement-form. For eksempel passer −128 i 8 bit (som 10000000), men −129 kræver 9 bit, fordi et fortegnsbehæftet heltal på 8 bit spænder fra −128 til 127.

Når bitlængden er kendt, findes bytelængden ved at runde op til nærmeste hele byte:

Bytelængde = ⌈bitlængde ÷ 8⌉

Symbolet ⌈ ⌉ betyder »rund op«. En værdi på 9 bit kræver stadig 2 hele byte, fordi en byte ikke kan deles.

Eksempler

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

Sådan beregnes bitlængden af en hexadecimal streng

Hvert hexadecimalt ciffer (0–9, A–F) repræsenterer præcis 4 bit, fordi 4 bit kan indeholde 16 mulige værdier.

Formel: bitlængde = antal hexadecimale cifre × 4. Bytelængden er igen bitlængden divideret med 8, rundet op.

For eksempel har den hexadecimale streng "FF" 2 cifre, så dens bitlængde er 2 × 4 = 8 bit, eller 1 byte. Den hexadecimale streng "ABCD" har 4 cifre, hvilket giver 16 bit, eller 2 byte. Mellemrum i strengen ignoreres, før der tælles.

Sådan beregnes bytelængden af en tekststreng

For tekst afhænger størrelsen af tegnkodningen, altså reglen for at omdanne tegn til byte. Beregneren understøtter fem tegnkodninger:

  • UTF-8: en kodning med variabel længde, der bruges overalt på nettet. Hvert tegn fylder 1 til 4 byte. Almindelige engelske bogstaver, cifre og tegnsætning fylder 1 byte hver.
  • UTF-16: bruges internt af JavaScript og Windows. Hvert tegn består af en eller to enheder på 16 bit. De fleste tegn fylder 2 byte; tegn uden for det grundlæggende flersprogede plan (Basic Multilingual Plane), f.eks. mange emojis, fylder 4 byte.
  • UTF-32: en tegnkodning med fast længde. Hvert tegn bruger præcis 4 byte, uanset hvilket tegn det er.
  • ASCII: en kodning på 7 bit, lagret med ét tegn pr. byte på 8 bit, som dækker 128 tegn, hovedsagelig engelske bogstaver, cifre og grundlæggende tegnsætning. Hvert tegn fylder 1 byte. Alle tegn uden for dette sæt afvises.
  • Latin-1 (ISO-8859-1): en 8-bit-tegnkodning, der dækker 256 tegn og tilføjer bogstaver med diakritiske tegn, som bruges i vesteuropæiske sprog. Hvert tegn bruger 1 byte. Tegn uden for dette sæt afvises.

Formel: bytelængde = det antal byte, som tegnkodningen producerer for strengen. Bitlængde = bytelængde × 8.

Eksempler

Teksten "Hello, world!" har 13 tegn, som alle er almindelige ASCII-bogstaver og tegnsætning.

  • UTF-8: 13 byte (104 bit), eftersom hvert tegn kan rummes i 1 byte.
  • UTF-16: 26 byte (208 bit), eftersom hvert tegn bruger 2 byte.

Teksten "こんにちは世界" (syv japanske tegn) fylder 3 byte pr. tegn i UTF-8, hvilket giver 21 byte (168 bit).

En emoji som 😀 ligger uden for Basic Multilingual Plane. Den bruger 4 byte i UTF-8, 4 byte i UTF-16 (som et surrogatpar) og 4 byte i UTF-32.

Hvorfor heltal med fortegn ændrer resultatet

Computere lagrer negative tal med to-komplement i stedet for et almindeligt minustegn. Det betyder, at bitlængden af et negativt heltal ikke blot er bitlængden af dets absolutte værdi plus én. Reglen er, at bitlængden er det mindste antal bit k, således at værdien er mindst −2^(k−1). Derfor kan −128 (som er lig med −2⁷) rummes i 8 bit, mens −129 kræver 9.

Ofte stillede spørgsmål

Hvordan konverterer jeg byte til bit? Gang med 8. Ti byte svarer til 80 bit, fordi hver byte pr. definition indeholder 8 bit.

Hvad er forskellen mellem bitlængde og bytelængde? Bitlængde tæller individuelle binære cifre. Bytelængde tæller grupper på 8 bit, afrundet op til den næste hele byte, når bitlængden ikke er et multiplum af 8.

Hvor mange byte bruger et UTF-8-tegn? Mellem 1 og 4. Tegn, der findes i ASCII, bruger 1 byte. Mange latinske tegn med diakritiske tegn samt græske og kyrilliske tegn bruger 2 byte. De fleste kinesiske, japanske og koreanske tegn bruger 3 byte. Emoji og andre sjældne symboler bruger 4 byte.

Hvordan beregnes bytelængden af en hexadecimal streng? Tæl de hexadecimale cifre, efter at mellemrum er fjernet, gang med 4 for at få bit, divider derefter med 8 og rund op. "FF" er 1 byte; "ABCD" er 2 byte. Et ulige antal som "ABC" (12 bit) kræver stadig 2 byte.

Hvorfor kræver et negativt heltal nogle gange flere bit end det tilsvarende positive tal? To-komplement bruger én bit til at angive fortegnet, men denne bit deles med værdiområdet i stedet for at blive lagt oven i i alle tilfælde. −128 kan rummes i de samme 8 bit som positive værdier op til 127, men −129 kan ikke længere rummes i 8 bit og kræver 9.

Hvilke inputstørrelser accepterer denne beregner? Heltal, hexstrenge og tekststrenge på op til 1.000.000 tegn.

Referencer

  1. Unicode, Inc. FAQ: UTF-8, UTF-16, UTF-32 & BOM. FAQ om Unicode-kodning — hvert tegn er en til fire byte på 8 bit i UTF-8, en eller to kodeenheder på 16 bit i UTF-16 eller en enkelt kodeenhed på 32 bit i UTF-32.
  2. Internet Engineering Task Force. RFC 3629: UTF-8, a transformation format of ISO 10646. RFC 3629 — UTF-8 bruger 1 til 4 oktetter; U+0000–U+007F fylder 1 byte, U+0080–U+07FF 2 byte, U+0800–U+FFFF 3 byte og U+10000 og derover 4 byte.
  3. Internet Engineering Task Force. RFC 20: ASCII format for network interchange. RFC 20 — standard ASCII på 7 bit indlejret i en byte på 8 bit.
  4. Oracle. The Java Language Specification, Java SE 21, Chapter 4: Types, Values, and Variables. JLS kapitel 4 — byte er et fortegnsbehæftet to-komplement-heltal på 8 bit med værdiområdet −128 til 127.