Peel a raw hex or binary value apart into named bit fields. Add fields with widths that sum to your total, pick MSB-first (network / most register spec sheets) or LSB-first (C bitfields on little-endian) packing, and read every field's decimal, hex, and binary value with the bit map colour-coded by field. Great for CPU registers, protocol headers, GPU state, and packed C structs.
Bit indexes count from the low bit. Each cell shows the raw 0/1. Colours group bits by field; grey cells are unassigned by any field.
MSB-first (a.k.a. big-endian bit order). The first field owns the highest-order bits. This is how nearly every hardware spec, RFC, and datasheet is written — flags-flags-padding, version-IHL, opcode-rd-rs-rt. If you're looking at a packet layout diagram or a chip register with bit 31 on the left, this is what you want.
LSB-first. The first field owns the lowest bits, and subsequent fields step up. This is the memory layout C compilers use for struct { unsigned a:3; unsigned b:5; } on little-endian ABIs — a is bits 0-2, b is bits 3-7. The value on the wire from the same struct on a big-endian ABI would be the MSB-first reading of the same bits.
Signed vs unsigned. For a signed field, the top bit of the extracted slice is the sign bit and the value is sign-extended to the full width. A 4-bit signed field with value 0b1101 reads as -3.
Field widths. Widths must be positive integers. Their sum can be at most the total width. Anything left over is shown as grey unassigned bits — click "Fill remaining as padding" to turn the gap into an explicit padding field.