Pack Camo

Конвертер систем числення

Двійкова, вісімкова, десяткова та hex, а також будь-яка система від 2 до 36, з великими числами.

Усе виконується локально — нічого не надсилається на сервер.

Результати

16 бітів · 13 одиничних бітів · 5 десяткових цифр

  • Двійкова (основа 2)
    1011 1110 1110 1111
  • Вісімкова (основа 8)
    137 357
  • Десяткова (основа 10)
    48 879
  • Шістнадцяткова (основа 16)
    BEEF
  • 1 1PR

Додатковий код

Бітовий шаблон для кожної розрядності, прочитаний як знакове й беззнакове ціле. Клацніть hex-значення, щоб скопіювати.

РозрядністьHex-шаблонЗнаковеБеззнакове
8 бітНе вміщується в 8 біт.
16 біт-1665748879
32 біт4887948879
64 біт4887948879
128 біт4887948879

Біти

Клацніть біт, щоб інвертувати його.

158
70

Біт 15 — знаковий, якщо значення читається як знакове.

Двійкова, вісімкова, десяткова та hex — і будь-яка система до 36

Введіть число в двійковій, вісімковій, десятковій, шістнадцятковій або будь-якій системі від 2 до 36 і одразу побачите його в усіх інших. Числа можуть бути скільки завгодно великими — конвертер використовує цілі числа довільної точності, тож 64- чи 128-бітне значення зберігає кожну цифру, — а від'ємні числа показано в додатковому коді на 8, 16, 32, 64 і 128 біт, з виглядом бітів, де можна клацнути біт, щоб інвертувати його. Префікси на кшталт <code>0x</code> і роздільники на кшталт <code>1_000_000</code> розпізнаються. Усе працює у вашому браузері.

Як перевести число в іншу систему числення

  1. 1Виберіть систему, в якій вводите: Bin, Oct, Dec, Hex або Інша для будь-якої основи від 2 до 36.
  2. 2Введіть або вставте число. Знак мінус, префікси 0x, 0b і 0o, а також пробіли, підкреслення чи коми між цифрами приймаються.
  3. 3Дивіться результат одразу в усіх системах, з цифрами, згрупованими для зручності. Виберіть іншу основу в останньому рядку або ввімкніть Усі основи 2–36.
  4. 4Перегляньте таблицю додаткового коду зі знаковим і беззнаковим значенням для кожної розрядності, клацайте біти у вигляді бітів, щоб інвертувати їх, і копіюйте потрібну форму.

Як влаштовані позиційні системи числення

У будь-якій системі кожна цифра важить основу в степені її позиції, рахуючи з нуля справа. У десятковій 255 — це 2×10² + 5×10¹ + 5×10⁰. У двійковій те саме число — 11111111: вісім одиниць, що дають 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1. У шістнадцятковій — FF: 15×16 + 15.

Основам понад 10 потрібно більше десяти символів, тож лік продовжують літери: A — це 10, B — 11 і так далі до Z для 35. Тому 36 — найбільша основа зі звичайними цифрами й літерами. Регістр літер не враховується.

Навіщо програмістам двійкова, вісімкова і hex

Двійкова (основа 2)
Так машина зберігає все. Зручна для бітових прапорців, масок і підмереж, але довга: 32-бітне значення має 32 цифри.
Шістнадцяткова (основа 16)
Кожна hex-цифра — рівно чотири біти, тож байт — це дві hex-цифри, а 32-бітне значення — вісім. Використовується для адрес пам'яті, кольорів (#FF8800), хешів, UUID і дампів байтів.
Вісімкова (основа 8)
Кожна вісімкова цифра — три біти. Збереглася переважно в правах доступу до файлів Unix, де 755 — це три групи бітів rwx; див. <a href="/chmod-calculator">калькулятор chmod</a>.
Основа 36 і основа 62
Компактні ідентифікатори без урахування регістру, як-от короткі URL та ID, використовують основу 36 (0–9 і a–z). Основа 62 додає великі літери й виходить за межі цього інструмента.

Додатковий код і від'ємні числа

Комп'ютери зберігають знакові цілі в додатковому коді: за фіксованої ширини n біт від'ємне число −x зберігається як 2ⁿ − x. На 8 бітах −1 — це 11111111 (0xFF), −128 — 10000000 (0x80), а старший біт водночас слугує знаком. 8-бітне знакове ціле вміщує від −128 до 127; ті самі 8 біт без знака — від 0 до 255.

Таблиця додаткового коду показує обидва прочитання для кожної поширеної розрядності. Введіть 0xFFFFFFFF — і побачите, що це 4 294 967 295 як беззнакове 32-бітне ціле та −1 як знакове; введіть -42 — і отримаєте його бітовий шаблон для кожної розрядності. Якщо значення не вміщується, рядок про це повідомляє, а не обрізає його мовчки.

Великі числа й точність

Звичайні числа JavaScript втрачають точність понад 2⁵³ (9 007 199 254 740 992), тому багато онлайн-конвертерів помиляються з 64-бітними ID і хешами. Цей конвертер скрізь використовує BigInt, тож точний для чисел будь-якого розміру — 128-бітного значення, хешу SHA-256, прочитаного як ціле, чи числа з 20 000 цифр.

Переводяться лише цілі числа. Дроби в інших системах рідко бувають скінченними (0,1 у десятковій — нескінченний періодичний дріб у двійковій), тож для бітових шаблонів чисел з рухомою комою та міток часу скористайтеся конвертером Unix timestamp.

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

Як перевести двійкове число в десяткове?
Виберіть Bin, введіть двійкове число й дивіться десятковий рядок. Вручну додайте степені двійки для кожної 1: 1011 — це 8 + 0 + 2 + 1 = 11.
Як перевести десяткове число в шістнадцяткове?
Виберіть Dec, введіть число й дивіться шістнадцятковий рядок. Вручну діліть на 16 і записуйте остачі від останньої до першої: 255 ÷ 16 = 15, остача 15, отже 255 — це FF.
Що означає префікс 0x?
0x позначає шістнадцяткове число в C, JavaScript, Python і більшості інших мов, так само як 0b — двійкове, а 0o — вісімкове. Конвертер приймає ці префікси на вході й може додавати їх до результату.
Як переводяться від'ємні числа?
У кожній системі результат зберігає знак мінус, наприклад -2A у hex. Таблиця додаткового коду й вигляд бітів показують, як те саме число зберігається у знаковому 8-, 16-, 32-, 64- або 128-бітному цілому.
Чому 0xFF показується і як 255, і як -1?
Ті самі вісім бітів означають 255 як беззнаковий байт і -1 як знаковий байт у додатковому коді. Що правильно, залежить від типу, в якому зберігається значення.
Чи є обмеження на розмір числа?
Практично немає: числа до 20 000 цифр переводяться точно, бо конвертер використовує цілі довільної точності, а не числа з рухомою комою.
Чи можна переводити дроби?
Ні, лише цілі числа. Більшість дробів не мають точного подання в інших системах, тож конвертер просить ціле число, а не дає округлену відповідь.
Чи надсилаються мої дані кудись?
Ні. Усе переведення відбувається у вашому браузері.