Bitų ir baitų ilgio skaičiuotuvas - Nemokamas duomenų dydžio įrankis
Skaičiuokite bitų ir baitų ilgius sveikuosius skaičius, šešioliktainės eilutės ir tekstą su UTF-8, UTF-16, ASCII kodavimais. Nemokamas internetinis įrankis programuotojams, duomenų mokslininkams ir tinklo inžinieriams.
Bitų ir Baitų Ilgio Skaičiuotuvas
8 bitai = 1 baitai
Vizualizacija
Dokumentacija
Kas yra bitų ir baitų ilgio skaičiuoklė?
Bitų ir baitų ilgio skaičiuoklė nustato, kiek bitų ir baitų reikia duomenų daliai. Bitas yra vienas dvejetainis skaitmuo: 0 arba 1. Baitas yra 8 bitų grupė. Skaičiuoklė priima sveikąjį skaičių, šešioliktainę eilutę arba tekstinę eilutę ir pateikia tikslų dydį abiem vienetais.
Tai svarbu programuojant, kuriant tinklus ir saugant duomenis. Duomenų bazės stulpelio, tinklo paketo ir diske esančio failo dydis matuojamas baitais, o šis dydis priklauso nuo to, kaip duomenys užrašyti.
Kaip apskaičiuoti sveikojo skaičiaus bitų ilgį
Teigiamo sveikojo skaičiaus bitų ilgis yra jo dvejetainio pavidalo skaitmenų skaičius. Pavyzdžiui, 255 dvejetaine forma yra 11111111, kurią sudaro 8 skaitmenys, todėl jo bitų ilgis yra 8.
Formulė: teigiamam sveikajam skaičiui n bitų ilgis yra skaitmenų skaičius n vaizdinyje 2 pagrindu. Ypatingu atveju, kai n = 0, bitų ilgis yra 1.
Neigiamiems sveikiesiems skaičiams taikomas dviejų papildinys – standartinis būdas, kuriuo kompiuteriai saugo ženklinius skaičius. Neigiamo sveikojo skaičiaus bitų ilgis yra mažiausias bitų skaičius, kuriuo jį galima užrašyti dviejų papildinio forma. Pavyzdžiui, −128 telpa į 8 bitus (kaip 10000000), o −129 reikia 9 bitų, nes 8 bitai gali apimti tik iki −128.
Nustačius bitų ilgį, baitų ilgis randamas suapvalinus į didesnę pusę iki artimiausio sveikojo baitų skaičiaus:
Baitų ilgis = ⌈bitų ilgis ÷ 8⌉
Simbolis ⌈ ⌉ reiškia „apvalinti į didesnę pusę“. 9 bitų reikšmei vis tiek reikia 2 pilnų baitų, nes baito negalima dalyti.
Išspręstas pavyzdys
| Sveikasis skaičius | Bitų ilgis | Baitų ilgis |
|---|---|---|
| 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 |
Kaip apskaičiuoti šešioliktainės eilutės bitų ilgį
Kiekvienas šešioliktainis skaitmuo (0–9, A–F) reiškia tiksliai 4 bitus, nes 4 bitai gali apimti 16 galimų reikšmių.
Formulė: bitų ilgis = šešioliktainių skaitmenų skaičius × 4. Baitų ilgis vėl gaunamas bitų ilgį padalijus iš 8 ir suapvalinus į didesnę pusę.
Pavyzdžiui, šešioliktainę eilutę „FF“ sudaro 2 skaitmenys, todėl jos bitų ilgis yra 2 × 4 = 8 bitai, arba 1 baitas. Šešioliktainę eilutę „ABCD“ sudaro 4 skaitmenys, todėl ji turi 16 bitų, arba 2 baitus. Prieš skaičiuojant pašalinami tarpai ir kiti tarpo simboliai. Nelyginis skaitmenų skaičius vis tiek suapvalinamas iki sveikojo baitų skaičiaus: „F“ yra 4 bitai, o skaičiuoklė pateikia rezultatą 1 baitu.
Kaip apskaičiuoti tekstinės eilutės baitų ilgį
Teksto dydis priklauso nuo simbolių koduotės – taisyklės, pagal kurią simboliai paverčiami baitais. Skaičiuoklė palaiko penkias koduotes:
- UTF-8: kintamo ilgio koduotė, naudojama visame saityne. Kiekvienam simboliui reikia nuo 1 iki 4 baitų. Įprastos angliškos raidės, skaitmenys ir skyrybos ženklai užima po 1 baitą.
- UTF-16: naudojama „JavaScript“ ir „Windows“ viduje. Daugumai simbolių reikia 2 baitų, o simboliams už pagrindinio daugiakalbio plano ribų, pavyzdžiui, daugeliui jaustukų, reikia 4 baitų.
- UTF-32: fiksuoto ilgio koduotė. Kiekvienam simboliui, nepaisant jo rūšies, reikia tiksliai 4 baitų.
- ASCII: 7 bitų koduotė, apimanti 128 simbolių, daugiausia angliškas raides, skaitmenis ir pagrindinius skyrybos ženklus. Kiekvienam simboliui reikia 1 baito. Bet koks šiam rinkiniui nepriklausantis simbolis atmetamas.
- Latin-1 (ISO-8859-1): 8 bitų koduotė, apimanti 256 simbolius ir papildanti juos Vakarų Europos kalbose vartojamomis raidėmis su diakritiniais ženklais. Kiekvienam simboliui reikia 1 baito. Šiam rinkiniui nepriklausantys simboliai atmetami.
Formulė: baitų ilgis = baitų, kuriuos koduotė sukuria eilutei, skaičius. Bitų ilgis = baitų ilgis × 8.
Skaičiuojamas tik pats tekstas. Baitų eilės žymeklis nepridedamas, todėl UTF-16 arba UTF-32 dydis čia yra atitinkamai 2 arba 4 baitais mažesnis nei įrankio, įrašančio žymeklį pradžioje, pateikiamas dydis.
Išspręstas pavyzdys
Tekstą „Hello, world!“ sudaro 13 simbolių, visi jie yra įprastos ASCII raidės ir skyrybos ženklai.
- UTF-8: 13 baitų (104 bitų), nes kiekvienas simbolis telpa į 1 baitą.
- UTF-16: 26 baitų (208 bitų), nes kiekvienam simboliui reikia 2 baitų.
Tekstas „こんにちは世界“ (septyni japoniški simboliai) UTF-8 koduotėje užima po 3 baitus kiekvienam simboliui, taigi iš viso 21 baitų (168 bitų).
Toks jaustukas kaip 😀 yra už pagrindinio daugiakalbio plano ribų. UTF-8 koduotėje jam reikia 4 baitų, UTF-16 koduotėje (kaip pakaitų pora) – 4 baitų, o UTF-32 koduotėje – 4 baitų.
Kodėl ženkliniai sveikieji skaičiai keičia rezultatą
Kompiuteriai neigiamus skaičius saugo naudodami dvejetainį papildinį iki dviejų, o ne paprastą minuso ženklą. Tai reiškia, kad neigiamo sveikojo skaičiaus bitų ilgis nėra tiesiog jo modulio bitų ilgis plius vienas. Taisyklė tokia: bitų ilgis yra mažiausias bitų skaičius k, kuriam esant reikšmė yra ne mažesnė už −2^(k−1). Todėl −128 (tai lygu −2⁷) telpa į 8 bitus, o −129 reikia 9.
Dažnai užduodami klausimai
Kaip perskaičiuoti baitus į bitus? Padauginkite iš 8. Dešimt baitų yra 80 bitų, nes pagal apibrėžtį kiekviename baite yra 8 bitai.
Kuo skiriasi bitų ilgis nuo baitų ilgio? Bitų ilgis skaičiuoja atskirus dvejetainius skaitmenis. Baitų ilgis skaičiuoja 8 bitų grupes, suapvalintas į didesnę pusę iki kito sveikojo baito, kai bitų ilgis nėra 8 kartotinis.
Kiek baitų naudoja UTF-8 simbolis? Nuo 1 iki 4. Su ASCII bendriems simboliams reikia 1 baito. Daugeliui lotyniškų, graikiškų ir kirilicos simbolių su diakritiniais ženklais reikia 2 baitų. Daugumai kinų, japonų ir korėjiečių simbolių reikia 3 baitų. Jaustukams ir kitiems retiems simboliams reikia 4 baitų.
Kaip apskaičiuojamas šešioliktainės eilutės baitų ilgis? Pašalinę tarpus suskaičiuokite šešioliktainius skaitmenis, padauginkite iš 4, kad gautumėte bitų skaičių, tada suapvalinkite į didesnę pusę iki sveikųjų baitų. Kiekvieną baitą sudaro 2 šešioliktainiai skaitmenys, todėl „FF“ yra 1 baitas, o „ABCD“ – 2 baitai. Vienas skaitmuo, pavyzdžiui, „F“, yra 4 bitai, tačiau vis tiek užima 1 baitą.
Kodėl neigiamam sveikajam skaičiui kartais reikia daugiau bitų nei atitinkamam teigiamam skaičiui? Dvejetainis papildinys iki dviejų naudoja vieną bitą ženklui nurodyti, tačiau šis bitas įskaičiuojamas į reikšmių intervalą, o ne visais atvejais pridedamas papildomai. −128 telpa į tuos pačius 8 bitus kaip ir teigiamos reikšmės iki 127, tačiau −129 į 8 bitus nebetelpa ir jam reikia 9 bitų.
Kokio dydžio įvestį priima ši skaičiuoklė? Sveikuosius skaičius, šešioliktaines eilutes ir tekstines eilutes, kurių ilgis yra iki 1 000 000 simbolių.
Šaltiniai
- "Character encoding." Vikipedija, „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." Vikipedija, „Wikimedia Foundation“. https://en.wikipedia.org/wiki/Two%27s_complement