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
8 bits = 1 bytes
Visualisering
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, som er den almindelige måde, computere lagrer tal med fortegn på. Bitlængden af et negativt heltal er det mindste antal bit, der kan indeholde tallet i to-komplementform. For eksempel kan −128 rummes i 8 bit (som 10000000), men −129 kræver 9 bit, fordi 8 bit kun kan gå ned til −128.
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.
Gennemregnet eksempel
| Heltal | Bitlængde | Bytelængde |
|---|---|---|
| 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 |
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 hexstrengen "FF" 2 cifre, så bitlængden er 2 × 4 = 8 bit eller 1 byte. Hexstrengen "ABCD" har 4 cifre, hvilket giver 16 bit eller 2 byte. Mellemrum og anden blanktegn fjernes før optællingen. Et ulige antal cifre rundes stadig op til en hel byte: "F" er 4 bit, hvilket beregneren angiver som 1 byte.
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 variabel-længde-kodning, der bruges på hele internettet. Hvert tegn bruger 1 til 4 byte. Almindelige engelske bogstaver, cifre og tegnsætning bruger 1 byte hver.
- UTF-16: bruges internt af JavaScript og Windows. De fleste tegn bruger 2 byte; tegn uden for Basic Multilingual Plane, f.eks. mange emoji, bruger 4 byte.
- UTF-32: en tegnkodning med fast længde. Hvert tegn bruger præcis 4 byte, uanset hvilket tegn det er.
- ASCII: en 7-bit-tegnkodning, der dækker 128 tegn, hovedsageligt engelske bogstaver, cifre og grundlæggende tegnsætning. Hvert tegn bruger 1 byte. 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.
Optællingen omfatter selve teksten. Der tilføjes ikke noget byteordsmærke, så en optælling med UTF-16 eller UTF-32 her er 2 eller 4 byte mindre end en optælling fra et værktøj, der skriver et mærke i begyndelsen.
Gennemregnet eksempel
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) bruger 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 hexstreng? Tæl de hexadecimale cifre efter at have fjernet blanktegn, gang med 4 for at få bit, og rund derefter op til hele byte. Hver byte er 2 hexadecimale cifre, så "FF" er 1 byte, og "ABCD" er 2 byte. Et enkelt ciffer som "F" er 4 bit, men optager stadig 1 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
- "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