About this tool
You have a datasheet open, a register reads 0x3F80, and the only question that matters is what each field says. Paste the value, describe the layout once — reserved:1, mode:3, prescaler:4, enable:1, status:7 — and every field comes back with its bit range, its raw binary, and its value in decimal and hex. Layouts are saved in your browser, so a register you typed in while reading page 412 of the reference manual is still there next week: the next time that value shows up in a log you decode it in two seconds instead of counting nibbles on paper.
The signed and unsigned readings sit next to each other rather than behind a toggle. 0xFF is 255 and −1 at the same time; which one is true depends entirely on how the code that produced it declared the variable, and reaching for the wrong one is a whole bug class — a sensor that reports −1 °C as 255, a status field that looks like an enormous count. Two columns at once turns that from a mistake you make into a question you answer: if unsigned says 65,535 and signed says −1, you already know what you are looking at.
Width is not decoration. 1 << 40 is 0 at 32 bits and 1,099,511,627,776 at 64; NOT 0x0F is 0xF0 in a byte and 0xFFFFFFF0 in a word; shifting a negative value right depends on how many bits it lives in. JavaScript's own <<, >> and & truncate every operand to 32 bits before they even start, which is why so many web calculators quietly get 64-bit answers wrong — 1 << 31 comes out negative and anything past 2^32 collapses to 0. This page does its arithmetic in BigInt and masks to the width you picked, so 64-bit results are exact and 8-bit results wrap the way a uint8_t really does.
Reading 0b0011_1111_1000_0000 off a screen and deciding whether bit 7 is set is exactly the kind of counting people get wrong at 2am, so there is a clickable bit grid: every bit is a labelled cell, clicking one flips it, and binary, decimal, hex, the signed and unsigned readings and the bitfield decode all update together. Everything runs in your browser on a static page with no API behind it, which matters here — register values from unreleased hardware are genuinely confidential, and the field names you invent while reverse-engineering a peripheral say as much about the chip as the numbers do.