BinaryFlow
Переводите между любыми основаниями от 2 до 36, щёлкайте по отдельным битам, читайте отрицательные числа как дополнительный код на 8–64 битах и раскладывайте float на знак, экспоненту и мантиссу. Ничего не обрезается и ничего не покидает ваш браузер.
Как это работаетЩёлкните по любому биту, чтобы его переключить.
Все вычисления идут в BigInt на выбранной разрядности, поэтому ничего молча не обрезается до 32 бит, как это делают операторы JavaScript.
Как это работает
1Введите в любом основании
Основания от 2 до 36, вместе со знаком минус, префиксами 0x и пробелами для группировки.
2Укажите разрядность
8, 16, 32, 64 бита или без ограничения. Значения со знаком переходят в дополнительный код, поэтому −42 становится 0xD6.
3Переключайте биты вручную
Щёлкните по любому биту в сетке или примените AND, OR, XOR, NOT и сдвиги на этой разрядности.
4Читайте все формы сразу
Двоичное, восьмеричное, десятичное, шестнадцатеричное, своё основание и сырые байты в любом порядке.
Что он действительно умеет
Без ограничения размера
BigInt от начала до конца, поэтому 300-значное число переводится точно, а не рассыпается после 2^53.
Со знаком и дополнительный код
Отрицательные числа на выбранной разрядности: хранимые биты и значение со знаком показаны рядом.
IEEE-754 как на ладони
Знак, экспонента и мантисса выделены цветом, плюс точное десятичное значение, которое реально хранит float.
Любое основание от 2 до 36
Не только привычные четыре. Основание 36 для коротких идентификаторов, основание 3 из любопытства.
Байты чего угодно
Четыре текстовые кодировки и hex-дамп любого файла, который вы перетащите, — читается только по вашей команде.
Никогда не покидает страницу
Все преобразования выполняются в вашем браузере. Ничего не загружается и не сохраняется.
Часто задаваемые вопросы
Отправляются ли мои данные на сервер?+
Нет. Все преобразования, включая hex-дамп перетащенного файла, происходят внутри вашего браузера. Ничего не загружается и не сохраняется между визитами.
Какие основания можно использовать?+
Любые от 2 до 36, и для ввода, и для дополнительной колонки вывода. Цифры больше 9 обозначаются буквами от a до z — то же соглашение, что у parseInt и BigInt.toString.
Почему −42 показывается как 0xD6?+
Потому что при 8 битах отрицательное число хранится в дополнительном коде. Инструмент показывает оба прочтения одних и тех же битов сразу: 214 без знака и −42 со знаком. Смените разрядность на 16 или 32 бита, и шестнадцатеричная запись вырастет соответственно.
Что даёт представление float?+
Оно делит 32 или 64 хранимых бита на знак, экспоненту и мантиссу и печатает точное десятичное значение, которое эти биты обозначают, а не сокращённую форму от JavaScript. Именно так видно, что 0.1 на самом деле равно 0.1000000000000000055511151231257827….
Можно ли править биты напрямую?+
Да. Каждый бит в сетке — это кнопка: щёлкните, чтобы переключить его, и все остальные представления обновятся. Также доступны AND, OR, XOR, NOT и сдвиги на выбранной разрядности, всё в BigInt и без урезания до 32 бит.