Биты
Показать решение
Этот конвертер систем счисления переводит двоичные, восьмеричные, десятичные, шестнадцатеричные числа и любое основание от 2 до 36 друг в друга прямо при вводе. Он точно работает с целыми любой длины, дробями, отрицательными числами в дополнительном коде на 8–64 бита и текстом в двоичный или hex (UTF-8), показывая ход решения.
Как пользоваться
- Вводите число в любое поле — двоичное, восьмеричное, десятичное, шестнадцатеричное или с основанием от 2 до 36, — остальные пересчитываются сразу.
- Кнопка копирования рядом с полем копирует его значение. Допускаются префиксы 0x, 0b и 0o, пробелы и подчёркивания.
- В блоке «Биты» выберите 8, 16, 32 или 64 бита, чтобы увидеть дополнительный код и значения со знаком и без. Нажатие на бит переключает его.
- «Показать решение» раскрывает вычисления, а режим «Текст» переводит текст в двоичный или HEX-код и обратно.
- Числа любой длины считаются точно — ограничения 2⁵³ нет, можно переводить даже 100-значные значения.
- Поддерживаются дроби (через точку): 0.1 в десятичной — это 0.0001100110011… в двоичной. Длинные и периодические дроби обрезаются до 64 знаков.
- Отрицательные числа показываются со знаком минус в полях и в дополнительном коде в блоке битов.
- Режим «Текст» использует UTF-8: кириллица занимает 2 байта на букву, эмодзи — 4.
Как устроены позиционные системы
В системе с основанием b каждая цифра умножается на степень b. Десятичное 2024 — это 2×10³ + 0×10² + 2×10¹ + 4×10⁰, двоичное 1011 — 1×8 + 0×4 + 1×2 + 1×1 = 11. Основания больше 10 используют буквы: шестнадцатеричная система — это 0–9 и A–F, где A = 10, F = 15.
Чтобы перевести десятичное число в систему b, его последовательно делят на b и читают остатки снизу вверх. Обратно — умножают каждую цифру на вес её разряда и складывают.
Зачем программистам hex и восьмеричная
Одна шестнадцатеричная цифра — ровно четыре бита, восьмеричная — три, поэтому длинное двоичное число сокращается без вычислений: 1101 1110 1010 1101 — это DEAD. Hex встречается в цветах (#FF8800), адресах памяти и дампах, восьмеричная — в правах доступа Unix вроде 755.
Дополнительный код и пределы
Компьютеры хранят отрицательные целые в дополнительном коде: биты положительного значения инвертируют и прибавляют единицу, поэтому −42 в 8 битах — 11010110 (0xD6). Знаковое 8-битное число лежит в диапазоне от −128 до 127, 16-битное — от −32 768 до 32 767. Конвертер считает с произвольной точностью, без ограничения 2⁵³ обычных чисел JavaScript.
Частые вопросы
Как перевести двоичное число в десятичное?
Умножьте каждый бит на его степень двойки и сложите: 101101 = 32 + 8 + 4 + 1 = 45. В ходе решения показаны эти веса разрядов.
Как перевести десятичное число в двоичное?
Делите на 2, записывая остатки, и читайте их снизу вверх: 13 → 6 ост. 1 → 3 ост. 0 → 1 ост. 1 → 0 ост. 1, значит 13 = 1101.
Сколько будет FF в десятичной системе?
FF в шестнадцатеричной — это 15 × 16 + 15 = 255, максимальное значение одного байта.
Что значит 0x перед числом?
0x обозначает шестнадцатеричный литерал в C, JavaScript, Python и многих других языках, так что 0x1F — это 31. Аналогично 0b означает двоичное число, 0o — восьмеричное; конвертер понимает все три префикса.
Как записать отрицательное число в двоичном виде?
Обычно в дополнительном коде: запишите положительное значение в нужной разрядности, инвертируйте все биты и прибавьте 1. В 8 битах −1 — это 11111111, а −128 — 10000000.
Можно ли переводить дробные числа?
Да. 0,5 в двоичной — 0,1, а 0,625 — 0,101, но 0,1 в двоичной бесконечна (0,000110011…), поэтому длинные и периодические дроби обрезаются на 64 знаках.