Bit- en Byte-lengte Calculator - Gratis Gegevensgrootte Tool
Bereken bit- en byte-lengtes voor integers, hexadecimale strings en tekst met UTF-8, UTF-16, ASCII-coderingen. Gratis online tool voor ontwikkelaars, data-wetenschappers en netwerkingenieurs.
Bit- en Byte-lengte Calculator
8 bits = 1 bytes
Visualisatie
Documentatie
Wat is een calculator voor bit- en bytelengte?
Een calculator voor bit- en bytelengte bepaalt hoeveel bits en bytes een gegevensstuk nodig heeft. Een bit is één binair cijfer, 0 of 1. Een byte is een groep van 8 bits. De calculator accepteert een geheel getal, een hexadecimale tekenreeks of een teksttekenreeks en geeft de exacte grootte in beide eenheden.
Dit is van belang voor programmeren, netwerken en gegevensopslag. Een databasekolom, een netwerkpakket en een bestand op schijf hebben allemaal een grootte die in bytes wordt gemeten, en die grootte hangt af van de manier waarop de gegevens zijn opgeslagen.
Hoe bereken je de bitlengte van een geheel getal?
De bitlengte van een positief geheel getal is het aantal cijfers in de binaire vorm ervan. Zo is 255 in binaire vorm 11111111, met 8 cijfers, dus de bitlengte is 8.
Formule: voor een positief geheel getal n is de bitlengte het aantal cijfers in de grondtal-2-representatie van n. Het bijzondere geval n = 0 heeft een bitlengte van 1.
Negatieve gehele getallen gebruiken het tweecomplement, de standaardmanier waarop computers gehele getallen met een teken opslaan. De bitlengte van een negatief geheel getal is het kleinste aantal bits waarin het in tweecomplementvorm past. Zo past −128 in 8 bits (als 10000000), maar heeft −129 9 bits nodig, omdat 8 bits slechts tot −128 kunnen gaan.
Zodra de bitlengte bekend is, wordt de bytelengte gevonden door naar boven af te ronden op de dichtstbijzijnde hele byte:
Bytelengte = ⌈bitlengte ÷ 8⌉
Het symbool ⌈ ⌉ betekent „naar boven afronden”. Een waarde van 9 bits heeft nog steeds 2 volledige bytes nodig, omdat een byte niet kan worden opgesplitst.
Uitgewerkt voorbeeld
| Geheel getal | Bitlengte | Bytelengte |
|---|---|---|
| 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 |
Hoe bereken je de bitlengte van een hexadecimale tekenreeks?
Elk hexadecimaal cijfer (0–9, A–F) vertegenwoordigt precies 4 bits, omdat 4 bits 16 mogelijke waarden kunnen bevatten.
Formule: bitlengte = aantal hexadecimale cijfers × 4. De bytelengte is opnieuw de bitlengte gedeeld door 8, naar boven afgerond.
De hexadecimale tekenreeks „FF” heeft bijvoorbeeld 2 cijfers, dus de bitlengte is 2 × 4 = 8 bits, oftewel 1 byte. De hexadecimale tekenreeks „ABCD” heeft 4 cijfers, goed voor 16 bits, oftewel 2 bytes. Spaties en andere witruimte worden verwijderd voordat de cijfers worden geteld. Een oneven aantal cijfers wordt nog steeds naar boven afgerond op een hele byte: „F” is 4 bits, wat de calculator rapporteert als 1 byte.
Hoe bereken je de bytelengte van een teksttekenreeks?
Bij tekst hangt de grootte af van de tekencodering, de regel die bepaalt hoe tekens in bytes worden omgezet. De calculator ondersteunt vijf coderingen:
- UTF-8: een codering met variabele lengte die overal op het web wordt gebruikt. Elk teken neemt 1 tot 4 bytes in beslag. Gewone Engelse letters, cijfers en leestekens nemen elk 1 byte in beslag.
- UTF-16: intern gebruikt door JavaScript en Windows. De meeste tekens nemen 2 bytes in beslag; tekens buiten het Basic Multilingual Plane, zoals veel emoji, nemen 4 bytes in beslag.
- UTF-32: een codering met vaste lengte. Elk teken neemt precies 4 bytes in beslag, ongeacht welk teken het is.
- ASCII: een codering van 7 bits die 128 tekens omvat, voornamelijk Engelse letters, cijfers en basisleestekens. Elk teken neemt 1 byte in beslag. Elk teken buiten deze verzameling wordt geweigerd.
- Latin-1 (ISO-8859-1): een codering van 8 bits die 256 tekens omvat, waaronder tekens met accenten die in West-Europese talen worden gebruikt. Elk teken neemt 1 byte in beslag. Tekens buiten deze verzameling worden geweigerd.
Formule: bytelengte = het aantal bytes dat de codering voor de tekenreeks oplevert. Bitlengte = bytelengte × 8.
De tellingen hebben alleen betrekking op de tekst zelf. Er wordt geen bytevolgordemarkering toegevoegd, dus een telling voor UTF-16 of UTF-32 is hier 2 of 4 bytes kleiner dan een telling van een programma dat aan het begin een merkteken schrijft.
Uitgewerkt voorbeeld
De tekst „Hello, world!” bevat 13 tekens, allemaal gewone ASCII-letters en leestekens.
- UTF-8: 13 bytes (104 bits), omdat elk teken in 1 byte past.
- UTF-16: 26 bytes (208 bits), omdat elk teken 2 bytes in beslag neemt.
De tekst „こんにちは世界” (zeven Japanse tekens) neemt in UTF-8 3 bytes per teken in beslag, wat neerkomt op 21 bytes (168 bits).
Een emoji zoals 😀 ligt buiten het Basic Multilingual Plane. In UTF-8 neemt deze 4 bytes in beslag, in UTF-16 4 bytes (als surrogaatpaar) en in UTF-32 4 bytes.
Waarom veranderen getekende gehele getallen het antwoord?
Computers slaan negatieve getallen op met het tweecomplement in plaats van met een gewoon minteken. Daardoor is de bitlengte van een negatief geheel getal niet simpelweg de bitlengte van de absolute waarde plus één. De regel luidt: de bitlengte is het kleinste aantal bits k waarvoor de waarde ten minste −2^(k−1) is. Daarom past −128 (gelijk aan −2⁷) in 8 bits, terwijl −129 9 bits nodig heeft.
Veelgestelde vragen
Hoe zet ik bytes om in bits? Vermenigvuldig met 8. Tien bytes zijn gelijk aan 80 bits, omdat elke byte per definitie 8 bits bevat.
Wat is het verschil tussen bitlengte en bytelengte? De bitlengte telt afzonderlijke binaire cijfers. De bytelengte telt groepen van 8 bits, naar boven afgerond op de volgende hele byte wanneer de bitlengte geen veelvoud van 8 is.
Hoeveel bytes gebruikt een UTF-8-teken? Tussen 1 en 4. Tekens die ook in ASCII voorkomen, gebruiken 1 byte. Veel Latijnse, Griekse en Cyrillische tekens met accenten gebruiken 2 bytes. De meeste Chinese, Japanse en Koreaanse tekens gebruiken 3 bytes. Emoji en andere zeldzame symbolen gebruiken 4 bytes.
Hoe wordt de bytelengte van een hexadecimale tekenreeks berekend? Tel de hexadecimale cijfers nadat de witruimte is verwijderd, vermenigvuldig met 4 om het aantal bits te krijgen en rond vervolgens naar boven af op hele bytes. Elke byte bestaat uit 2 hexadecimale cijfers, dus „FF” is 1 byte en „ABCD” is 2 bytes. Een los cijfer zoals „F” is 4 bits, maar neemt nog steeds 1 byte in beslag.
Waarom heeft een negatief geheel getal soms meer bits nodig dan de positieve tegenhanger? Het tweecomplement gebruikt één bit om het teken aan te geven, maar dat bit wordt gedeeld met het waardebereik in plaats van er in elk geval bovenop te komen. −128 past in dezelfde 8 bits als positieve waarden tot en met 127, maar −129 past niet meer in 8 bits en heeft 9 nodig.
Welke invoergroottes accepteert deze calculator? Gehele getallen, hexadecimale tekenreeksen en teksttekenreeksen met een lengte tot 1.000.000 tekens.
Referenties
- "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