bitlvl
EN

Developer tools that work at the bit level.

Converters and calculators for the things underneath: bases, bits, bytes, addresses, hashes, tokens and time. Each one loads instantly and runs only in your browser.

Unsigned
48879
Signed (two's complement)
−16657
Hex
0xBEEF
Octal
0o137357
Set bits
11 of 16
As UTF-8 / ASCII
—

Click a bit. The readouts follow. Use ← → to move between bits.

Numbers & bits

Convert between bases, flip bits, and see how machines store numbers.

Base converterBinary, decimal, hex and octal, with the working shown0xBEEF = 48879 = 1011 1110 1110 1111Bitwise calculatorAND, OR, XOR, NOT, shifts and rotates, shown bit by bit0b1100 ^ 0b1010 = 0b0110Bitmask calculatorBuild a mask from bit positions, or decode which flags a mask containsbits 0, 2, 7 → 0x85Two's complement converterSigned ⇄ unsigned at any width, with the invert-and-add-one steps−1 in 8 bits = 1111 1111 = 0xFFIEEE 754 float visualizerSee the sign, exponent and mantissa of any float32 or float640.1 = 0x3DCCCCCD (float32)Byte & data size converterBits, bytes, kB vs KiB, MB vs MiB, plus transfer time at a given speed1 GiB = 1.074 GB = 8,589,934,592 bitsCRC & checksum calculatorCRC-8/16/32/64 in every common variant, Adler-32, Fletcher, for text or a filecrc32("123456789") = CBF43926Endianness converterSwap byte order of 16/32/64-bit values and see the memory layout0x12345678 ⇄ 0x78563412Gray code, BCD & popcountConvert to and from Gray code and BCD, count set bits, parity5 → Gray 111, BCD 0101Roman numeral converterNumbers ⇄ Roman numerals, with the rules and a reference table1994 = MCMXCIVNumber to wordsSpell out a number or amount in words, for cheques, contracts and invoices1,234 → one thousand two hundred and thirty-fourC struct layout & bit-field visualizerPaste a struct: offsets, padding, alignment and sizeof per ABI (x86-64, ARM64, i386, ARM32, MSVC), bit-field packing, reorder to shrink, decode a hex dumpchar c; int i; → c@0, pad 3, i@4, sizeof 8Integer overflow & arithmetic calculatorEvaluate an expression in int8…u128 with C, Rust, Go, Java or JavaScript rules: wraparound, UB, promotion, shifts, signed/unsigned trapsINT_MAX + 1 → -2147483648 (undefined behaviour in C)

Networking

Subnets, prefixes and address maths for IPv4 and IPv6.

Subnet calculatorIPv4 CIDR: network, broadcast, usable range, mask in binary, subnet splitting192.168.1.0/24 → 254 hostsIPv6 calculatorExpand or compress an address, get the prefix range, type and reverse DNS2001:db8::1/64IP address ⇄ integerDotted IPv4 to decimal, hex, binary and octal, and back192.168.1.1 = 3232235777MAC address lookup & formatterVendor (OUI), address type, every notation, EUI-64 and link-local address00:0C:29:… → VMwareDNS lookup & mail checkerLive records from Cloudflare and Google resolvers, propagation diff, SPF include chain, DMARC and DKIMexample.com → A, MX, TXT… SPF 4 of 10 lookupsPort number referenceWhat listens on which port: well-known and commonly seen TCP/UDP ports, searchable5432 → PostgreSQLDNS record explainerPaste dig output or zone lines: every record decoded, SPF, DKIM and DMARC checkedv=spf1 include:… -all → explainedPacket decoderPaste tcpdump/Wireshark hex or drop a pcap: Ethernet, VLAN, ARP, IPv4/6, TCP, UDP, ICMP, DNS, DHCP, TLS decoded field by field4500 003c … → IPv4 › TCP [SYN] seq 1000 ✓ checksumsCIDR aggregator & splitterMerge a list of IPs and ranges into the fewest prefixes, subtract exclusions, or split blocks10.0.0.0/25 + 10.0.0.128/25 → 10.0.0.0/24Reverse DNS generatorPTR names, in-addr.arpa / ip6.arpa zones and bulk PTR records for a block192.168.1.0/24 → 1.168.192.in-addr.arpaUser-agent parserBrowser, engine, OS, device and bot detection for any User-Agent stringMozilla/5.0 (…) Chrome/129 → Chrome 129, Windows

Encoding

Move text and bytes between the forms protocols expect.

Base64 encode / decodeStandard and URL-safe Base64 for text and files, decoded in the browserhello → aGVsbG8=URL encode / decodePercent-encoding for components, whole URLs and form data, plus a query-string parsera b&c → a%20b%26cText ⇄ binary / hex / ASCIISee the bytes behind any text, or turn bytes back into textHi → 01001000 01101001Hex viewerOffset, hex and ASCII columns for any file or text, like xxd in the browser00000000: 4865 6c6c 6f HelloColor converter & contrast checkerHex ⇄ RGB ⇄ HSL ⇄ OKLCH, named colors, WCAG contrast#1F4FE0 = rgb(31 79 224) = oklch(0.51 0.22 266)JSON formatter & validatorPretty-print, minify, validate with a precise error, sort keys, convert to YAML{"a":1} → pretty, YAML, statsUnicode inspectorEvery character with its code point, name, block and bytes; finds invisible and look-alike characters“pаypal” → Cyrillic а detectedText cleaner — invisible charactersStrip zero-width spaces, hidden tag characters, bidi controls, odd spaces and BOMs from text pasted from AI chats, web pages and PDFsHere’s​ the plan → Here’s the plan (3 hidden characters removed)Punycode / IDN converterInternationalised domain names ⇄ xn-- ASCII form, with homograph warningsmünchen.de ⇄ xn--mnchen-3ya.deHTML entity encoder / decoderNamed and numeric character references both ways, with the full HTML5 entity table© ⇄ © ⇄ ©String escape toolEscape or unescape for JSON, shell, SQL, regex, C, CSV, HTML, XML, YAML, .propertiesit's → 'it'\''s' (shell)QR code generatorURLs, Wi-Fi, contacts and text as SVG or PNG, generated in the browserhttps://… → QR (v3, M)Morse code translatorText ⇄ Morse with the full table, prosigns and audio playbackSOS = ... --- ...

Hashes & tokens

Digest, sign, decode and inspect, without sending anything anywhere.

Hash generatorMD5, SHA-1, SHA-256, SHA-384 and SHA-512 of text or a file, with HMACsha256("abc") = ba7816bf…JWT decoderRead the header and claims of a JSON Web Token, check expiry, verify HS256eyJhbGciOi… → { alg, exp, sub }UUID & ULID generatorGenerate v4, v7 and ULIDs in bulk, or inspect one to see its version and timestampv7: 019a… (sortable)Password & passphrase generatorRandom passwords and word-based passphrases with entropy in bits and time-to-crackcorrect-horse-battery-staple-river → 63 bitsbcrypt, Argon2 & scrypt hasherHash a password or verify one against an existing hash, entirely in the browser$2b$12$… · $argon2id$v=19$m=19456…TOTP / 2FA code generatorPaste a Base32 secret or otpauth:// URI and get the current 6-digit code, for debugging 2FA setupsJBSWY3DPEHPK3PXP → 492039 (23 s left)SSL certificate & CSR decoderPaste a PEM certificate, CSR or public key and read every field, extension and fingerprint-----BEGIN CERTIFICATE----- → subject, SAN, expirySSH key fingerprint & converterFingerprint an OpenSSH public key, convert OpenSSH ⇄ PEM, build authorized_keys linesssh-ed25519 AAAA… → SHA256:…HTTP security headers & CSP analyzerPaste curl -I output or a Content-Security-Policy: every header explained, graded, and the CSP evaluated for XSS bypassescurl -I → grade B · CSP: unsafe-inline, cdnjs bypassWebhook signature verifierCheck GitHub, Stripe, Slack, Shopify, Twilio, Svix and generic HMAC signatures against a payloadsha256=… matches ✓Random bytes & token generatorCryptographically random hex, Base64, API keys, numbers and dice, from your browser’s CSPRNG32 bytes → 64 hex chars

Time

Timestamps and schedules, in any time zone.

Unix

Permissions and the other bits you type into a shell.

chmod calculatorPermission checkboxes ⇄ octal ⇄ rwx, with setuid, setgid and sticky bitsrwxr-xr-x = 755umask calculatorSee which file and directory permissions a umask produces, or find the umask for the permissions you wantumask 022 → files 644, dirs 755ls -l and stat explainerPaste a line of ls -l or the output of stat and get every column explaineddrwxr-sr-x. 5 www-data … → directory, 2755, SELinuxExit code referenceWhat exit status 1, 2, 126, 127, 137, 139, 143 and 255 mean, and the 128+signal rule137 = killed by SIGKILL (OOM)Linux signal referenceSIGTERM vs SIGKILL, every signal number, default action and what sends itkill -15 = SIGTERM, kill -9 = SIGKILLCron ⇄ systemd timer converterTurn a crontab line into a complete timer and service unit, or an OnCalendar expression back into cron30 6 * * 1-5 → Mon..Fri *-*-* 06:30:00Diff toolCompare two texts line by line, see changed characters highlighted, get a unified diff- old line / + new lineRegex testerLive matching with groups, replace preview, and a plain-English breakdown of the pattern/(\d{4})-(\d{2})/g → 2 groups, 3 matchesnginx location testerPaste a config and a URL: which server and location win, and what rewrite, try_files and proxy_pass do with it/api/users → location /api/ → proxy http://127.0.0.1:3000/usersEXPLAIN plan visualizerPaste PostgreSQL or MySQL EXPLAIN ANALYZE output: a tree with time per node, estimate vs actual, buffers, and what to fixEXPLAIN ANALYZE → 64% in Hash Join, 2 batches → raise work_memSQL formatterPretty-print or minify SQL: PostgreSQL, MySQL, SQLite, SQL Server. Keyword case, indent, comma styleselect a,b from t where … → indented, one clause per line

Play

Puzzles and games about bits: a daily register puzzle, hex picross, and a logic-gate lab.

Reference

Tables and cheat sheets to keep open in a tab or print.

Why another tools site

Most converter sites are slow, covered in pop-ups, and quietly send what you paste to a server. bitlvl does the opposite: every tool is a few kilobytes of hand-written JavaScript, the page works offline once loaded, and nothing you type leaves your device. There is no account, no upload and no analytics on the content of your inputs.

Each tool also shows its working where that helps: the base converter writes out the positional expansion, the float visualizer shows the sign, exponent and mantissa, and the subnet calculator prints the mask in binary. That is the point of the name: these tools are for understanding what is going on at the bit level, not just getting a number.