BinaryFlow
Convert between any base from 2 to 36, click individual bits to flip them, read negative numbers as two's complement at 8 to 64 bits, and open a float up into its sign, exponent and mantissa. Nothing is truncated and nothing leaves your browser.
See how it worksClick any bit to flip it.
Everything stays in BigInt at the width you picked, so nothing is silently truncated to 32 bits the way JavaScript operators do.
How it works
1Type it in any base
Base 2 to 36, with a minus sign, 0x prefixes and grouping spaces all accepted.
2Say how wide it is
8, 16, 32, 64 bits or unlimited. Signed values wrap into two's complement, so −42 becomes 0xD6.
3Flip bits by hand
Click any bit in the grid, or run AND, OR, XOR, NOT and shifts at that width.
4Read every form at once
Binary, octal, decimal, hex, a custom base and the raw bytes in either byte order.
What it actually does
No size limit
BigInt end to end, so a 300-digit number converts exactly instead of collapsing past 2^53.
Signed and two's complement
Negative numbers at a chosen width, showing the stored bits and the signed value side by side.
IEEE-754 laid open
Sign, exponent and mantissa colour-coded, plus the exact decimal a float really holds.
Any base from 2 to 36
Not just the usual four. Base 36 for short ids, base 3 for the curious.
Bytes of anything
Four text encodings, and a hex dump of any file you drop — read only when you ask.
Never leaves the page
Every conversion runs in your browser. Nothing is uploaded and nothing is stored.
Frequently Asked Questions
Is my data sent to any server?+
No. Every conversion, including the hex dump of a file you drop, happens inside your browser. Nothing is uploaded and nothing is stored between visits.
Which bases can I use?+
Any base from 2 to 36, both for the input and for the extra output column. Digits above 9 use the letters a to z, the same convention parseInt and BigInt.toString use.
Why does −42 show as 0xD6?+
Because at 8 bits a negative number is stored as its two's complement. The tool shows both readings of the same bits at once: 214 as unsigned, −42 as signed. Change the width to 16 or 32 bits and the hex grows accordingly.
What does the float view tell me?+
It splits the 32 or 64 stored bits into sign, exponent and mantissa, and prints the exact decimal value those bits denote rather than the shortened form JavaScript prints. That is how you can see that 0.1 is really 0.1000000000000000055511151231257827….
Can I edit the bits directly?+
Yes. Every bit in the grid is a button — click it to flip it and every other view updates. You can also apply AND, OR, XOR, NOT and shifts at the chosen width, all in BigInt so nothing is cut down to 32 bits.