Digital logic tools
Forty-one calculators for the things you actually have to work out, from truth tables, simplification and Karnaugh maps to logic proofs, number bases, text encodings, and the bits inside subnets, floats, IDs and file formats. Each one shows its working, and all of them are free and run in your browser, with nothing uploaded.
Boolean algebra and circuits
Truth table generator
Type an expression, or several for a multi-output circuit, and get the full truth table, plus the tables of all seven basic gates.
Open →Boolean algebra calculator
Simplify to an irredundant sum of products, or check whether two expressions are equivalent.
Open →Karnaugh map solver
Draws the K-map with every group highlighted, for two to six variables.
Open →Sum of products calculator
Minterms, maxterms, and all four forms: canonical and minimal, SOP and POS.
Open →NAND and NOR converter
Rewrite any expression using only NAND gates, or only NOR gates, with the gate count.
Open →Circuit diagram generator
Draws one expression, or several outputs at once, as a gate diagram you can click through, with live signal colours.
Open →Worksheet generator
A printable set of questions with an answer key, rebuilt from the number in the link.
Open →Seven-segment and dot-matrix display designer
Design seven-segment, dot-matrix and Nixie displays and copy the bytes as C, Arduino or Verilog.
Open →Logic statements and sets
Logic statement truth tables
Truth tables for p → q, ↔ and ¬ with every step shown, plus tautology, equivalence and argument validity checks.
Open →Logical equivalence calculator
Step-by-step proofs that two logic statements are equivalent, one named law per line, or a counterexample when they are not.
Open →Expression tree generator
Draw the parse tree of a logic expression and see every part's value for any row of its truth table.
Open →Venn diagram generator
Shade any set expression of up to three sets, or click regions to get the expression, with the truth table.
Open →Logic symbols to copy and paste
Copy any logic, boolean or set symbol in one click, as the character, LaTeX, HTML or its Unicode code point.
Open →Numbers and binary arithmetic
Binary converter
Decimal, binary, hex and octal at a fixed width, with two's complement and BCD.
Open →Gray code converter
Convert between binary and Gray code, with the full sequence for any width.
Open →Hex to decimal converter
Hex to decimal and back, with the place-value sum and the repeated division written out.
Open →Hex to binary converter
Hex to binary and back, nibble by nibble, and octal in groups of three bits.
Open →Binary calculator
Add, subtract, multiply and divide in binary with every carry and borrow shown, plus bitwise operations.
Open →Hex calculator
Hex arithmetic with column working, carries at 16, and the full hex addition table.
Open →IEEE 754 converter
Decimal to float and double bits: sign, exponent and fraction, the exact value stored and the rounding error.
Open →FP16, BF16, FP8 and FP4 converter
A decimal in FP16, BF16, FP8 E4M3 and E5M2 and FP4 at once: the bits, the exact value stored, the rounding error and the neighbours.
Open →Base 36 converter
Convert decimal to base 36 and back, or between any two bases from 2 to 36, for numbers of any size, with every division step shown.
Open →Guess my number
Think of a number and it is found in 7 yes/no questions, one bit each. Then lie once and a Hamming code catches it, or beat an evil opponent.
Open →Bitwise pattern generator
Draw x ^ y, x & y and your own expressions as images, and see the bits behind any pixel.
Open →Text and encodings
Binary translator
Text to binary and binary to text, with each character broken down into its code point and UTF-8 bytes.
Open →ASCII table
All 128 ASCII codes in decimal, hex and binary, with the control characters named and explained.
Open →Base64 encode and decode
Encode text to Base64 or decode it, with every 3 bytes shown becoming 4 characters, bit by bit.
Open →Base32 encode and decode
Encode or decode Base32 in the RFC 4648, base32hex or Crockford alphabet, with every 5 bytes drawn as 8 characters, bit by bit.
Open →Base58 encode and decode
Encode or decode Base58 with the division by 58 written out, and check the checksum of a Bitcoin address or WIF key.
Open →QR code generator
Makes a QR code and takes it apart: every module coloured by its role, each encoding step written out, with SVG and PNG download.
Open →EAN-13 barcode generator
Make an EAN-13, UPC-A or EAN-8 barcode with the check digit worked out, and see which L, G or R code draws every digit.
Open →Punch card generator and reader
Punch text onto an 80-column card or a paper tape, or click holes and read what they say.
Open →Programming and networking
Subnet calculator
Network, broadcast and host range from any CIDR or netmask, with the address AND mask drawn bit by bit.
Open →VLSM calculator
Plan subnets of different sizes from host counts, packed largest first with free space shown, or split a network evenly.
Open →IPv6 expand and compress
Expand an IPv6 address to all 32 digits or compress it the RFC 5952 way, with each rule, all 128 bits, the prefix and the address type.
Open →Bit manipulation tricks
The classic bit hacks, from x & (x - 1) to SWAR popcount and XOR swap, traced bit by bit for your own value at 8, 16 or 32 bits.
Open →Integer limits
The min and max of every integer type from int8 to uint128, their names in each language, and an overflow playground.
Open →Struct padding calculator
Paste a C struct to see every offset and padding byte, sizeof on five ABIs, and a member order that wastes less.
Open →UUID decoder and generator
Paste a UUID, ULID or ObjectId to see its version, variant and timestamp bit by bit, or generate fresh IDs in your browser.
Open →Snowflake ID decoder
Turn a Discord or Twitter/X ID into the exact moment it was made, with its worker and sequence bits, or a date into its snowflake range.
Open →File signature checker
Find out what a file really is from its first bytes: the magic number highlighted in a hex dump, and whether the extension tells the truth.
Open →Which one do I want?
| If you have | And you want | Use |
|---|---|---|
| An expression | every input combination listed | Truth table generator |
| A long expression | the shortest equivalent | Boolean algebra calculator |
| Two expressions | to know whether they match | Boolean algebra calculator |
| A homework K-map | the groups drawn and named | Karnaugh map solver |
| A truth table | minterms, maxterms, SOP or POS | Sum of products calculator |
| A circuit design | it rebuilt from one gate type | NAND and NOR converter |
| A counter or encoder | a one-bit-at-a-time sequence | Gray code converter |
| A number | it in another base, or in two's complement | Binary converter |
| An IP address and a prefix | its network, broadcast and host range | Subnet calculator |
| A network and some host counts | a subnet for each, without overlaps | VLSM calculator |
| A long IPv6 address | its shortest correct form | IPv6 expand and compress |
| A model in FP16 or FP8 | what one number turns into | FP16, BF16, FP8 and FP4 converter |
| A C struct | its size and where the padding goes | Struct padding calculator |
| A UUID, ULID or ObjectId | its version and when it was made | UUID decoder and generator |
| A Discord or Twitter/X ID | the moment it was created | Snowflake ID decoder |
| A file with a doubtful extension | what its first bytes say it is | File signature checker |
| Some text or a link | a QR code, and how it is built | QR code generator |
| Bytes for a display | seven-segment, dot-matrix or Nixie patterns as C, Arduino or Verilog | Display designer |
| An old punch card or paper tape | text punched onto it, or holes read back as text | Punch card generator |
| A picture from bitwise operators | the image x ^ y or x & y draws, and why | Bitwise pattern generator |
| A class to teach | a printable question sheet with answers | Worksheet generator |
| An idea | to build and run it | The simulator |
The expression tools share one engine
The same parser and minimiser sits behind every tool here that takes an expression, so what you type into one means exactly the same thing in the next. (The number, encoding and programming tools work on bits and bytes rather than expressions, so each has its own engine.) It accepts whichever notation you use — a·b, a&b, a∧b, ab — and the simplification is Quine-McCluskey, the same algorithm whether you see it as algebra or as groups on a map.