Przejdź do treści

Kalkulator długości bitów i bajtów - Darmowe narzędzie do rozmiaru danych

Obliczaj długości bitów i bajtów dla liczb całkowitych, ciągów szesnastkowych i tekstu z kodowaniami UTF-8, UTF-16, ASCII. Darmowe narzędzie online dla programistów, naukowców zajmujących się danymi i inżynierów sieciowych.

Kalkulator długości bitów i bajtów

Typ wejścia
bitów
8
bajtów
1

8 bitów = 1 bajtów

Wizualizacja

Bajt 1
11111111
0xFF
Kalkulator załadunku...
📚

Dokumentacja

Co to jest kalkulator długości bitowej i bajtowej?

Kalkulator długości bitowej i bajtowej określa, ilu bitów i bajtów wymaga dany fragment danych. Bit to pojedyncza cyfra binarna: 0 lub 1. Bajt to grupa 8 bitów. Kalkulator przyjmuje liczbę całkowitą, ciąg szesnastkowy lub ciąg tekstowy i podaje dokładny rozmiar w obu jednostkach.

Ma to znaczenie w programowaniu, sieciach komputerowych i przechowywaniu danych. Kolumna bazy danych, pakiet sieciowy i plik na dysku mają rozmiar mierzony w bajtach, a jego wielkość zależy od sposobu zapisania danych.

Jak obliczyć długość bitową liczby całkowitej

Długość bitowa dodatniej liczby całkowitej to liczba cyfr w jej zapisie binarnym. Na przykład liczba 255 w zapisie binarnym to 11111111, który ma 8 cyfr, więc jej długość bitowa wynosi 8.

Wzór: dla dodatniej liczby całkowitej n długość bitowa to liczba cyfr w zapisie n o podstawie 2. W szczególnym przypadku n = 0 długość bitowa wynosi 1.

Ujemne liczby całkowite są zapisywane w kodzie uzupełnień do dwóch, czyli w standardowy sposób przechowywania przez komputery liczb ze znakiem. Długość bitowa ujemnej liczby całkowitej to najmniejsza liczba bitów, która może pomieścić ją w kodzie uzupełnień do dwóch. Na przykład liczba −128 mieści się w 8 bitach jako 10000000, ale −129 wymaga 9 bitów, ponieważ 8 bitów pozwala zejść tylko do −128.

Po ustaleniu długości bitowej długość bajtową uzyskuje się przez zaokrąglenie w górę do najbliższego pełnego bajtu:

Długość bajtowa = ⌈długość bitowa ÷ 8⌉

Symbol ⌈ ⌉ oznacza „zaokrąglij w górę”. Wartość o długości 9 bitów nadal wymaga 2 pełnych bajtów, ponieważ bajta nie można podzielić.

Przykład obliczeń

Liczba całkowitaDługość bitowaDługość bajtowa
011
25581
25692
−12881
−12992
18,446,744,073,709,551,615 (2⁶⁴ − 1)648

Jak obliczyć długość bitową ciągu szesnastkowego

Każda cyfra szesnastkowa (0–9, A–F) reprezentuje dokładnie 4 bity, ponieważ 4 bity mogą przechowywać 16 możliwych wartości.

Wzór: długość bitowa = liczba cyfr szesnastkowych × 4. Długość bajtową ponownie oblicza się przez podzielenie długości bitowej przez 8 i zaokrąglenie wyniku w górę.

Na przykład ciąg szesnastkowy „FF” ma 2 cyfry, więc jego długość bitowa wynosi 2 × 4 = 8 bitów, czyli 1 bajt. Ciąg szesnastkowy „ABCD” ma 4 cyfry, co daje 16 bitów, czyli 2 bajty. Przed zliczaniem usuwane są spacje i inne białe znaki. Nieparzysta liczba cyfr również jest zaokrąglana w górę do pełnego bajta: „F” to 4 bity, które kalkulator podaje jako 1 bajt.

Jak obliczyć długość bajtową ciągu tekstowego

W przypadku tekstu rozmiar zależy od kodowania znaków, czyli reguły przekształcania znaków w bajty. Kalkulator obsługuje pięć kodowań:

  • UTF-8: kodowanie o zmiennej długości używane w całej sieci WWW. Każdy znak zajmuje od 1 do 4 bajtów. Zwykłe angielskie litery, cyfry i znaki interpunkcyjne zajmują po 1 bajcie.
  • UTF-16: używane wewnętrznie przez JavaScript i system Windows. Większość znaków zajmuje 2 bajty, a znaki spoza Podstawowej Płaszczyzny Wielojęzycznej, takie jak wiele emoji, zajmują 4 bajty.
  • UTF-32: kodowanie o stałej długości. Każdy znak zajmuje dokładnie 4 bajty, niezależnie od tego, jaki to znak.
  • ASCII: kodowanie 7-bitowe obejmujące 128 znaków, głównie angielskie litery, cyfry i podstawowe znaki interpunkcyjne. Każdy znak zajmuje 1 bajt. Każdy znak spoza tego zbioru jest odrzucany.
  • Latin-1 (ISO-8859-1): kodowanie 8-bitowe obejmujące 256 znaków, w tym akcentowane litery używane w językach Europy Zachodniej. Każdy znak zajmuje 1 bajt. Znaki spoza tego zbioru są odrzucane.

Wzór: długość bajtowa = liczba bajtów wygenerowanych przez kodowanie dla danego ciągu. Długość bitowa = długość bajtowa × 8.

Zliczenie obejmuje sam tekst. Nie jest dodawany znacznik kolejności bajtów, dlatego wynik dla UTF-16 lub UTF-32 jest tu mniejszy o 2 lub 4 bajty od wyniku narzędzia zapisującego znacznik na początku.

Przykład obliczeń

Tekst „Hello, world!” ma 13 znaków, a wszystkie jego litery i znaki interpunkcyjne należą do zwykłego zestawu ASCII.

  • UTF-8: 13 bajtów (104 bitów), ponieważ każdy znak mieści się w 1 bajcie.
  • UTF-16: 26 bajtów (208 bitów), ponieważ każdy znak zajmuje 2 bajty.

Tekst „こんにちは世界” (siedem japońskich znaków) zajmuje 3 bajty na znak w UTF-8, co daje 21 bajtów (168 bitów).

Emoji, takie jak 😀, znajduje się poza Podstawową Płaszczyzną Wielojęzyczną. W UTF-8 zajmuje 4 bajty, w UTF-16 4 bajty jako para zastępcza, a w UTF-32 4 bajty.

Dlaczego liczby całkowite ze znakiem zmieniają wynik

Komputery przechowują liczby ujemne w kodzie uzupełnień do dwóch, a nie z użyciem zwykłego znaku minus. Oznacza to, że długość bitowa ujemnej liczby całkowitej nie jest po prostu długością bitową jej wartości bezwzględnej powiększoną o jeden. Zasada jest następująca: długość bitowa to najmniejsza liczba bitów k, dla której wartość jest co najmniej −2^(k−1). Dlatego −128 (co odpowiada −2⁷) mieści się w 8 bitach, natomiast −129 wymaga 9 bitów.

Najczęściej zadawane pytania

Jak przeliczyć bajty na bity? Pomnóż przez 8. Dziesięć bajtów to 80 bitów, ponieważ zgodnie z definicją każdy bajt zawiera 8 bitów.

Jaka jest różnica między długością bitową a bajtową? Długość bitowa oznacza liczbę pojedynczych cyfr binarnych. Długość bajtowa oznacza liczbę grup po 8 bitów, zaokrągloną w górę do następnego pełnego bajta, gdy długość bitowa nie jest wielokrotnością 8.

Ile bajtów zajmuje znak UTF-8? Od 1 do 4. Znaki wspólne z ASCII zajmują 1 bajt. Wiele akcentowanych znaków alfabetu łacińskiego, greckiego i cyrylicy zajmuje 2 bajty. Większość znaków chińskich, japońskich i koreańskich zajmuje 3 bajty. Emoji i inne rzadkie symbole zajmują 4 bajty.

Jak oblicza się długość bajtową ciągu szesnastkowego? Policz cyfry szesnastkowe po usunięciu białych znaków, pomnóż ich liczbę przez 4, aby uzyskać liczbę bitów, a następnie zaokrąglij w górę do pełnych bajtów. Każdy bajt to 2 cyfry szesnastkowe, więc „FF” to 1 bajt, a „ABCD” to 2 bajty. Pojedyncza cyfra, taka jak „F”, to 4 bity, ale nadal zajmuje 1 bajt.

Dlaczego ujemna liczba całkowita czasami wymaga większej liczby bitów niż odpowiadająca jej liczba dodatnia? Kod uzupełnień do dwóch używa jednego bitu do oznaczenia znaku, ale bit ten jest współdzielony z zakresem wartości, a nie dodawany do niego w każdym przypadku. Liczba −128 mieści się w tej samej liczbie 8 bitów co wartości dodatnie do 127, ale −129 nie mieści się już w 8 bitach i wymaga 9.

Jakie rozmiary danych wejściowych akceptuje ten kalkulator? Liczby całkowite, ciągi szesnastkowe i ciągi tekstowe o długości do 1 000 000 znaków.

Piśmiennictwo

  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