Siirry sisältöön

Bitti- ja tavupituuden laskuri - Ilmainen tietokokotyökalu

Laske bitti- ja tavupituudet kokonaisluvuille, heksamerkkijonoille ja tekstille UTF-8, UTF-16 ja ASCII-koodauksilla. Ilmainen online-työkalu kehittäjille, data-analyytikoille ja verkkosuunnittelijoille.

Bitti- ja tavupituuslaskuri

Syötetyyppi
bittiä
8
tavua
1

8 bittiä = 1 tavua

Visualisointi

Tavu 1
11111111
0xFF
Latauslaskuri...
📚

Dokumentaatio

Mikä on bitti- ja tavupituuslaskin?

Bitti- ja tavupituuslaskin selvittää, kuinka monta bittiä ja tavua tietokappale tarvitsee. Bitti on yksittäinen binäärinumero, 0 tai 1. Tavu on 8 bitin ryhmä. Laskin hyväksyy kokonaisluvun, heksadesimaalimerkkijonon tai tekstimerkkijonon ja ilmoittaa tarkan koon molemmissa yksiköissä.

Tällä on merkitystä ohjelmoinnissa, tietoverkoissa ja tietojen tallennuksessa. Tietokannan sarakkeella, verkkopaketilla ja levylle tallennetulla tiedostolla on tavuina mitattava koko, joka riippuu siitä, miten tiedot esitetään.

Kokonaisluvun bittipituuden laskeminen

Positiivisen kokonaisluvun bittipituus on sen binääriesityksen numeroiden määrä. Esimerkiksi 255 on binäärimuodossa 11111111, jossa on 8 numeroa, joten sen bittipituus on 8.

Kaava: positiivisen kokonaisluvun n bittipituus on n:n kantaluvun 2 esityksen numeroiden määrä. Erikoistapauksessa n = 0 bittipituus on 1.

Negatiivisissa kokonaisluvuissa käytetään kahden komplementtia, joka on tietokoneiden vakiotapa esittää etumerkillisiä lukuja. Negatiivisen kokonaisluvun bittipituus on pienin bittimäärä, johon luku mahtuu kahden komplementin muodossa. Esimerkiksi −128 mahtuu 8 bittiin (muodossa 10000000), mutta −129 tarvitsee 9 bittiä, koska 8 bitillä voidaan päästä alimmillaan arvoon −128.

Kun bittipituus tunnetaan, tavupituus saadaan pyöristämällä ylöspäin lähimpään kokonaisiin tavuihin:

Tavupituus = ⌈bittipituus ÷ 8⌉

Merkintä ⌈ ⌉ tarkoittaa ”pyöristä ylöspäin”. 9 bitin arvo tarvitsee silti 2 täyttä tavua, koska tavua ei voi jakaa osiin.

Esimerkkilaskelma

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

Heksadesimaalimerkkijonon bittipituuden laskeminen

Jokainen heksadesimaalinumero (0–9, A–F) esittää täsmälleen 4 bittiä, koska 4 bitillä voidaan esittää 16 mahdollista arvoa.

Kaava: bittipituus = heksadesimaalimerkkien määrä × 4. Tavupituus on jälleen bittipituus jaettuna 8:lla ja pyöristettynä ylöspäin.

Esimerkiksi heksadesimaalimerkkijonossa ”FF” on 2 numeroa, joten sen bittipituus on 2 × 4 = 8 bittiä eli 1 tavu. Heksadesimaalimerkkijonossa ”ABCD” on 4 numeroa, joten pituudeksi saadaan 16 bittiä eli 2 tavua. Välilyönnit ja muut tyhjemerkit poistetaan ennen laskemista. Pariton määrä numeroita pyöristetään silti ylöspäin kokonaisiksi tavuiksi: ”F” on 4 bittiä, minkä laskin ilmoittaa muodossa 1 tavu.

Tekstimerkkijonon tavupituuden laskeminen

Tekstin koko riippuu merkistökoodauksesta eli säännöstä, jolla merkit muunnetaan tavuiksi. Laskin tukee viittä koodausta:

  • UTF-8: muuttuvan pituinen koodaus, jota käytetään kaikkialla verkossa. Kukin merkki vie 1–4 tavua. Tavalliset englannin kirjaimet, numerot ja välimerkit vievät kukin 1 tavun.
  • UTF-16: käytetään JavaScriptin ja Windowsin sisäisesti. Useimmat merkit vievät 2 tavua; perustason monikielisen tason ulkopuoliset merkit, kuten monet emojit, vievät 4 tavua.
  • UTF-32: kiinteäpituinen koodaus. Jokainen merkki vie täsmälleen 4 tavua merkistä riippumatta.
  • ASCII: 7 bitin koodaus, joka kattaa 128 merkkiä, pääasiassa englannin kirjaimet, numerot ja perusvälimerkit. Kukin merkki vie 1 tavun. Kaikki tämän joukon ulkopuoliset merkit hylätään.
  • Latin-1 (ISO-8859-1): 8 bitin koodaus, joka kattaa 256 merkkiä ja sisältää lisäksi länsieurooppalaisissa kielissä käytettäviä tarkkeellisia kirjaimia. Kukin merkki vie 1 tavun. Tämän joukon ulkopuoliset merkit hylätään.

Kaava: tavupituus = tavujen määrä, jonka koodaus tuottaa merkkijonolle. Bittipituus = tavupituus × 8.

Laskelmat koskevat vain itse tekstiä. Tavujärjestysmerkkiä ei lisätä, joten UTF-16- tai UTF-32-koodauksen tulos on tässä 2 tai 4 tavua pienempi kuin työkalussa, joka kirjoittaa merkin alkuun.

Esimerkkilaskelma

Tekstissä ”Hello, world!” on 13 merkkiä, jotka kaikki ovat tavallisia ASCII-kirjaimia ja välimerkkejä.

  • UTF-8: 13 tavua (104 bittiä), koska jokainen merkki mahtuu 1 tavuun.
  • UTF-16: 26 tavua (208 bittiä), koska jokainen merkki vie 2 tavua.

Teksti ”こんにちは世界” (seitsemän japanilaista merkkiä) vie UTF-8-koodauksessa 3 tavua merkkiä kohden, joten kokonaismäärä on 21 tavua (168 bittiä).

Esimerkiksi emoji 😀 sijaitsee perustason monikielisen tason ulkopuolella. Se vie UTF-8-koodauksessa 4 tavua, UTF-16-koodauksessa 4 tavua (surrogaattiparina) ja UTF-32-koodauksessa 4 tavua.

Miksi etumerkilliset kokonaisluvut muuttavat tulosta

Tietokoneet tallentavat negatiiviset luvut kahden komplementin avulla tavallisen miinusmerkin sijaan. Siksi negatiivisen kokonaisluvun bittipituus ei ole yksinkertaisesti sen itseisarvon bittipituus plus yksi. Sääntö on seuraava: bittipituus on pienin bittimäärä k, jolla arvo on vähintään −2^(k−1). Tästä syystä −128 (joka on sama kuin −2⁷) mahtuu 8 bittiin, kun taas −129 tarvitsee 9 bittiä.

Usein kysyttyä

Miten tavut muunnetaan biteiksi? Kerro luvulla 8. Kymmenen tavua vastaa 80 bittiä, koska kussakin tavussa on määritelmän mukaan 8 bittiä.

Mikä ero on bittipituudella ja tavupituudella? Bittipituus laskee yksittäiset binäärinumerot. Tavupituus laskee 8 bitin ryhmiä, ja tulos pyöristetään ylöspäin seuraavaan kokonaiseen tavuun, jos bittipituus ei ole luvun 8 monikerta.

Kuinka monta tavua UTF-8-merkki käyttää? 1–4. ASCII:n kanssa yhteiset merkit käyttävät 1 tavun. Monet tarkkeelliset latinalaiset sekä kreikkalaiset ja kyrilliset merkit käyttävät 2 tavua. Useimmat kiinalaiset, japanilaiset ja korealaiset merkit käyttävät 3 tavua. Emojit ja muut harvinaiset symbolit käyttävät 4 tavua.

Miten heksadesimaalimerkkijonon tavupituus lasketaan? Laske heksadesimaalinumerot sen jälkeen, kun tyhjemerkit on poistettu, kerro määrä luvulla 4 saadaksesi bittimäärän ja pyöristä sitten ylöspäin kokonaisiksi tavuiksi. Jokainen tavu vastaa 2 heksadesimaalinumeroa, joten ”FF” on 1 tavu ja ”ABCD” on 2 tavua. Yksittäinen numero, kuten ”F”, on 4 bittiä, mutta vie silti 1 tavun.

Miksi negatiivinen kokonaisluku tarvitsee joskus enemmän bittejä kuin vastaava positiivinen luku? Kahden komplementissa yksi bitti ilmaisee etumerkin, mutta se kuuluu samalla arvoalueeseen eikä sitä lisätä erikseen kaikissa tapauksissa. −128 mahtuu samoihin 8 bittiin kuin positiiviset arvot 127:ään asti, mutta −129 ei enää mahdu 8 bittiin ja tarvitsee 9 bittiä.

Minkä kokoisia syötteitä tämä laskin hyväksyy? Kokonaislukuja, heksadesimaalimerkkijonoja ja tekstimerkkijonoja, joiden pituus on enintään 1 000 000 merkkiä.

Lähteet

  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