Перейти до вмісту

Калькулятор довжини бітів і байтів - Безкоштовний інструмент для визначення розміру даних

Обчислення довжини бітів і байтів для цілих чисел, hex-рядків та тексту з кодуваннями UTF-8, UTF-16, ASCII. Безкоштовний онлайн-інструмент для розробників, науковців з даними та мережевих інженерів.

Калькулятор довжини бітів і байтів

Тип введення
біти
8
байти
1

8 біти = 1 байти

Візуалізація

Байт 1
11111111
0xFF
Калькулятор завантаження...
📚

Документація

Що таке калькулятор довжини в бітах і байтах?

Калькулятор довжини в бітах і байтах визначає, скільки бітів і байтів потрібно для фрагмента даних. Біт — це одна двійкова цифра: 0 або 1. Байт — це група з 8 бітів. Калькулятор приймає ціле число, шістнадцятковий рядок або текстовий рядок і показує точний розмір в обох одиницях.

Це важливо для програмування, мереж і зберігання даних. Стовпець бази даних, мережевий пакет і файл на диску мають розмір, виміряний у байтах, і цей розмір залежить від способу запису даних.

Як обчислити довжину цілого числа в бітах

Довжина додатного цілого числа в бітах — це кількість цифр у його двійковому записі. Наприклад, 255 у двійковій системі дорівнює 11111111, що має 8 цифр, тому його довжина в бітах становить 8.

Формула: для додатного цілого числа n довжина в бітах — це кількість цифр у представленні числа n в системі числення з основою 2. Для особливого випадку n = 0 довжина в бітах становить 1.

Для від’ємних цілих чисел використовується доповняльний код, стандартний спосіб зберігання знакових чисел у комп’ютерах. Довжина від’ємного цілого числа в бітах — це найменша кількість бітів, у які це число можна подати у доповняльному коді. Наприклад, −128 вміщується у 8 бітів (як 10000000), але для −129 потрібно 9 бітів, оскільки 8 бітів можуть охоплювати значення лише до −128.

Коли довжину в бітах визначено, довжину в байтах знаходять, округлюючи вгору до найближчого цілого байта:

Довжина в байтах = ⌈довжина в бітах ÷ 8⌉

Символ ⌈ ⌉ означає «округлити вгору». Значення довжиною 9 бітів усе одно потребує 2 повних байтів, оскільки байт не можна розділити.

Приклад обчислення

Ціле числоДовжина в бітахДовжина в байтах
011
25581
25692
−12881
−12992
18,446,744,073,709,551,615 (2⁶⁴ − 1)648

Як обчислити довжину шістнадцяткового рядка в бітах

Кожна шістнадцяткова цифра (0–9, A–F) представляє рівно 4 біти, оскільки 4 біти можуть містити 16 можливих значень.

Формула: довжина в бітах = кількість шістнадцяткових цифр × 4. Довжину в байтах знову отримують діленням довжини в бітах на 8 з округленням угору.

Наприклад, шістнадцятковий рядок «FF» має 2 цифри, тому його довжина в бітах дорівнює 2 × 4 = 8 бітів, або 1 байту. Шістнадцятковий рядок «ABCD» має 4 цифри, що дає 16 бітів, або 2 байти. Перед підрахунком пробіли та інші символи пропуску видаляються. Непарна кількість цифр також округлюється вгору до цілого байта: «F» — це 4 біти, які калькулятор подає як 1 байт.

Як обчислити довжину текстового рядка в байтах

Для тексту розмір залежить від кодування символів — правила перетворення символів на байти. Калькулятор підтримує п’ять кодувань:

  • UTF-8: кодування змінної довжини, що використовується в усьому вебі. Кожен символ займає від 1 до 4 байтів. Звичайні англійські літери, цифри та розділові знаки займають по 1 байту.
  • UTF-16: використовується всередині JavaScript і Windows. Більшість символів займає 2 байти; символи за межами базової багатомовної площини, зокрема багато емодзі, займають 4 байти.
  • UTF-32: кодування фіксованої довжини. Кожен символ займає рівно 4 байти, незалежно від того, який це символ.
  • ASCII: 7-бітове кодування, що охоплює 128 символів, переважно англійські літери, цифри та основні розділові знаки. Кожен символ займає 1 байт. Будь-який символ поза цим набором відхиляється.
  • Latin-1 (ISO-8859-1): 8-бітове кодування, що охоплює 256 символів і додає літери з діакритичними знаками, уживані в західноєвропейських мовах. Кожен символ займає 1 байт. Символи поза цим набором відхиляються.

Формула: довжина в байтах = кількість байтів, які кодування створює для рядка. Довжина в бітах = довжина в байтах × 8.

Підрахунок стосується лише самого тексту. Позначка порядку байтів не додається, тому для UTF-16 або UTF-32 це на 2 або 4 байти менше, ніж у засобі, який записує позначку на початку.

Приклад обчислення

Текст «Hello, world!» містить 13 символів — усі це звичайні ASCII-літери та розділові знаки.

  • UTF-8: 13 байтів (104 бітів), оскільки кожен символ займає 1 байт.
  • UTF-16: 26 байтів (208 бітів), оскільки кожен символ займає 2 байти.

Текст «こんにちは世界» (сім японських символів) займає по 3 байти на символ у UTF-8, тобто 21 байт (168 бітів).

Емодзі, як-от 😀, перебуває за межами базової багатомовної площини. У UTF-8 він займає 4 байти, у UTF-16 — 4 байти (як сурогатна пара), а в UTF-32 — 4 байти.

Чому знакові цілі числа змінюють результат

Комп’ютери зберігають від’ємні числа за допомогою доповняльного коду, а не простого знака мінус. Тому довжина від’ємного цілого числа в бітах — це не просто довжина модуля цього числа в бітах плюс один. Правило таке: довжина в бітах — це найменша кількість бітів k, для якої значення не менше за −2^(k−1). Саме тому −128 (що дорівнює −2⁷) вміщується у 8 бітів, тоді як для −129 потрібно 9.

Поширені запитання

Як перетворити байти на біти? Помножити на 8. Десять байтів дорівнюють 80 бітам, оскільки кожен байт за визначенням містить 8 бітів.

У чому різниця між довжиною в бітах і довжиною в байтах? Довжина в бітах підраховує окремі двійкові цифри. Довжина в байтах підраховує групи по 8 бітів, округлюючи вгору до наступного цілого байта, якщо довжина в бітах не кратна 8.

Скільки байтів займає символ UTF-8? Від 1 до 4. Символи, спільні з ASCII, займають 1 байт. Багато латинських, грецьких і кириличних символів із діакритичними знаками займають 2 байти. Більшість китайських, японських і корейських символів займає 3 байти. Емодзі та інші рідкісні символи займають 4 байти.

Як обчислюється довжина шістнадцяткового рядка в байтах? Після видалення пробілів порахуйте шістнадцяткові цифри, помножте їх кількість на 4, щоб отримати кількість бітів, а потім округліть угору до цілих байтів. Один байт — це 2 шістнадцяткові цифри, тому «FF» — це 1 байт, а «ABCD» — 2 байти. Окрема цифра, як-от «F», — це 4 біти, але вона все одно займає 1 байт.

Чому від’ємному цілому числу іноді потрібно більше бітів, ніж відповідному додатному? У доповняльному коді один біт позначає знак, але цей біт спільно використовується з діапазоном значень, а не додається до кожного випадку. −128 вміщується в тих самих 8 бітах, що й додатні значення до 127, але −129 уже не вміщується в 8 бітах і потребує 9.

Які розміри введених даних приймає цей калькулятор? Цілі числа, шістнадцяткові рядки та текстові рядки довжиною до 1 000 000 символів.

Джерела

  1. "Character encoding." Вікіпедія, Фонд Вікімедіа. 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." Вікіпедія, Фонд Вікімедіа. https://en.wikipedia.org/wiki/Two%27s_complement