Liigu sisu juurde

Biti ja baidi pikkuse kalkulaator - Tasuta andmemahu tööriist

Arvutage bittide ja baitide pikkusi täisarvudele, kuueteistkümnendarvudele ja tekstile UTF-8, UTF-16, ASCII kodeerimisel. Tasuta veebipõhine tööriist arendajatele, andmeteadlastele ja võrguinseneridele.

Bittide ja baitide pikkuse kalkulaator

Sisendi tüüp
bitid
8
baidid
1

8 bitid = 1 baidid

Visualiseerimine

Bait 1
11111111
0xFF
Laadimiskalkulaator...
📚

Dokumentatsioon

Mis on biti- ja baidipikkuse kalkulaator?

Biti- ja baidipikkuse kalkulaator leiab, mitu bitti ja baiti andmeosa vajab. Bitt on üks kahendnumber, 0 või 1. Bait on 8 biti rühm. Kalkulaator võtab vastu täisarvu, kuueteistkümnendsüsteemi sõne või tekstisõne ning teatab täpse suuruse mõlemas ühikus.

See on oluline programmeerimisel, võrgunduses ja andmesalvestuses. Andmebaasi veerul, võrgupaketil ja kettal oleval failil on baitides mõõdetav suurus ning see suurus sõltub andmete esitamisviisist.

Kuidas arvutada täisarvu bitipikkust

Positiivse täisarvu bitipikkus on selle kahendkuju numbrite arv. Näiteks 255 on kahendsüsteemis 11111111, milles on 8 numbrit, seega on selle bitipikkus 8.

Valem: positiivse täisarvu n bitipikkus on n esituse numbrite arv alusel 2. Erijuhul n = 0 on bitipikkus 1.

Negatiivsete täisarvude puhul kasutatakse kahendkomplementi, mis on arvutites märgiga arvude salvestamise standardviis. Negatiivse täisarvu bitipikkus on väikseim bittide arv, millesse see mahub kahendkomplemendi kujul. Näiteks −128 mahub 8 bitti kujul 10000000, kuid −129 vajab 9 bitti, sest 8 bitiga saab minna ainult väärtuseni −128.

Kui bitipikkus on teada, leitakse baidipikkus lähima täisbaidini üles ümardades:

Baidipikkus = ⌈bitipikkus ÷ 8⌉

Sümbol ⌈ ⌉ tähendab „ümarda üles“. 9-bitine väärtus vajab siiski 2 täisbaidi, sest baiti ei saa osadeks jagada.

Näidisarvutus

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

Kuidas arvutada kuueteistkümnendsüsteemi sõne bitipikkust

Iga kuueteistkümnendsüsteemi number (0–9, A–F) tähistab täpselt 4 bitti, sest 4 bitiga saab esitada 16 võimalikku väärtust.

Valem: bitipikkus = kuueteistkümnendsüsteemi numbrite arv × 4. Baidipikkus saadakse taas bitipikkuse jagamisel 8-ga ja tulemuse üles ümardamisel.

Näiteks kuueteistkümnendsüsteemi sõnes „FF“ on 2 numbrit, seega on selle bitipikkus 2 × 4 = 8 bitti ehk 1 bait. Sõnes „ABCD“ on 4 numbrit, mis annab 16 bitti ehk 2 baiti. Tühikud ja muud tühimärgid eemaldatakse enne loendamist. Ka paaritu numbrite arv ümardatakse üles täisbaidini: „F“ on 4 bitti, mille kalkulaator esitab kui 1 bait.

Kuidas arvutada tekstisõne baidipikkust

Teksti puhul sõltub suurus märgikodeeringust ehk reeglist, mille järgi märgid baitideks teisendatakse. Kalkulaator toetab viit kodeeringut:

  • UTF-8: muutuva pikkusega kodeering, mida kasutatakse kogu veebis. Iga märk võtab 1 kuni 4 baiti. Tavalised inglise tähed, numbrid ja kirjavahemärgid võtavad igaüks 1 baidi.
  • UTF-16: kasutatakse JavaScripti ja Windowsi sees. Enamik märke võtab 2 baiti; põhitasandi välised märgid, näiteks paljud emotikonid, võtavad 4 baiti.
  • UTF-32: fikseeritud pikkusega kodeering. Iga märk võtab täpselt 4 baiti, olenemata märgist.
  • ASCII: 7-bitine kodeering, mis hõlmab 128 märki, peamiselt inglise tähti, numbreid ja põhilisi kirjavahemärke. Iga märk võtab 1 baidi. Kõik sellesse hulka mittekuuluvad märgid lükatakse tagasi.
  • Latin-1 (ISO-8859-1): 8-bitine kodeering, mis hõlmab 256 märki, lisades Lääne-Euroopa keeltes kasutatavad diakriitilised tähed. Iga märk võtab 1 baidi. Kõik sellesse hulka mittekuuluvad märgid lükatakse tagasi.

Valem: baidipikkus = baitide arv, mille kodeering sõne jaoks tekitab. Bitipikkus = baidipikkus × 8.

Loend hõlmab ainult teksti ennast. Baidijärjestuse markerit ei lisata, seega on UTF-16 või UTF-32 tulemus siin 2 või 4 baiti väiksem kui tööriista antud tulemus, kui tööriist kirjutab markeri algusesse.

Näidisarvutus

Tekstis „Hello, world!“ on 13 märki, mis kõik on tavalised ASCII tähed ja kirjavahemärgid.

  • UTF-8: 13 baiti (104 bitti), sest iga märk mahub 1 baiti.
  • UTF-16: 26 baiti (208 bitti), sest iga märk võtab 2 baiti.

Tekst „こんにちは世界“ (seitse jaapani märki) võtab UTF-8-s märgi kohta 3 baiti, kokku 21 baiti (168 bitti).

Emotikon 😀 asub väljaspool põhitasandit. UTF-8-s võtab see 4 baiti, UTF-16-s 4 baiti (surrogaadipaari kujul) ja UTF-32-s 4 baiti.

Miks muudavad märgiga täisarvud vastust

Arvutid salvestavad negatiivsed arvud kahendkomplemendi, mitte tavalise miinusmärgi abil. Seetõttu ei ole negatiivse täisarvu bitipikkus lihtsalt selle absoluutväärtuse bitipikkus pluss üks. Reegel on järgmine: bitipikkus on väikseim bittide arv k, mille korral väärtus on vähemalt −2^(k−1). Seetõttu mahub −128 (mis võrdub −2⁷-ga) 8 bitti, samas kui −129 vajab 9 bitti.

Korduma kippuvad küsimused

Kuidas teisendada baite bittideks? Korruta 8-ga. Kümme baiti võrdub 80 bitiga, sest igas baidis on määratluse kohaselt 8 bitti.

Mis vahe on bitipikkusel ja baidipikkusel? Bitipikkus loendab üksikuid kahendnumbreid. Baidipikkus loendab 8-bitiseid rühmi ja ümardatakse järgmise täisbaidini, kui bitipikkus ei ole 8 kordne.

Mitu baiti kasutab UTF-8 märk? 1 kuni 4. ASCII-ga ühised märgid kasutavad 1 baiti. Paljud diakriitilised ladina, kreeka ja kirillitsa märgid kasutavad 2 baiti. Enamik hiina, jaapani ja korea märke kasutab 3 baiti. Emotikonid ja muud haruldased sümbolid kasutavad 4 baiti.

Kuidas arvutatakse kuueteistkümnendsüsteemi sõne baidipikkus? Loenda pärast tühimärkide eemaldamist kuueteistkümnendsüsteemi numbrid, korruta bittide saamiseks 4-ga ja ümarda seejärel täisbaitideni. Iga bait sisaldab 2 kuueteistkümnendsüsteemi numbrit, seega on „FF“ 1 bait ja „ABCD“ 2 baiti. Üksik number, näiteks „F“, on 4 bitti, kuid hõivab siiski 1 baidi.

Miks vajab negatiivne täisarv mõnikord rohkem bitte kui sellele vastav positiivne arv? Kahendkomplement kasutab märgi tähistamiseks üht bitti, kuid see bitt jaguneb väärtusvahemikuga, mitte ei lisandu igal juhul eraldi. −128 mahub samasse 8 bitti nagu positiivsed väärtused kuni 127, kuid −129 ei mahu enam 8 bitti ja vajab 9 bitti.

Milliseid sisendite suurusi see kalkulaator vastu võtab? Täisarve, kuueteistkümnendsüsteemi sõnesid ja kuni 1 000 000 märgi pikkuseid tekstisõnesid.

Viited

  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