Encoders & Utilities

Number Base Converter

Converteer tussen binair, octaal, decimaal en hexadecimaal. Ondersteunt BigInt en bitwise met signed widths.

Bitwise operations

Over deze tool

Number Base Converter vertaalt een integer wederzijds tussen binair (basis 2), octaal (basis 8), decimaal (basis 10) en hexadecimaal (basis 16). Typ de waarde in een van de vier invoervelden en de andere drie updaten in lockstep. Arbitrary-precision-wiskunde is ingebouwd — plak een 1024-bit hash en u krijgt nog steeds een exact antwoord, geen floating-point-afronding.

Een tweede paneel draait bitwise operaties op dezelfde waarde: AND, OR, XOR, NOT, left shift, right shift, arithmetic right shift. Voor elke operatie kiest u de integer-breedte (8/16/32/64 bits, signed of unsigned) zodat two's complement-representaties correct worden getoond — 0xFF is 255 in u8 maar -1 in i8, en de tool labelt beide. Een live binaire preview markeert individuele bit-posities zodat u precies kunt zien wat omgevallen is.

Wanneer gebruikt u deze tool

  • Config-flags lezen en schrijven. Veel API's gebruiken bitmask-flags; 0b10110 converteren naar 22 of terug is een dagelijkse belasting op deze stijl.
  • Hex-dumps debuggen. Een byte die 0xC0 in geheugen toont? Dat is 192 decimaal, 0b11000000 binair.
  • Kleurwaarden berekenen. CSS-hex-kleuren, ANSI-escape-codes en image-format-byte-streams leven allemaal in hex.
  • Werken met bestandsrechten. 0o7550b111101101 — de conversie is de basis van de Chmod Calculator.

Over BigInt en signed breedtes

JavaScript's native Number verliest precisie voorbij 2^53. We gebruiken BigInt voor de waarde zelf, dus elke integer die u kunt schrijven past. Signed breedtes zijn belangrijk voor negatieve getallen: two's complement op 8 bits zegt 0b10000000 = -128; op 16 bits is hetzelfde patroon 32768. De tool toont u altijd beide interpretaties zodat de juiste slechts een blik weg is.

Veelgestelde vragen

Waarom toont 0xFF als zowel 255 als -1?

Omdat het bytepatroon hetzelfde is — de betekenis hangt af van of u het als unsigned (u8 = 255) of signed two's complement (i8 = -1) behandelt. De hardware weet niet welke; het type-systeem wel. We tonen beide interpretaties zodat u de waarde kunt lezen zoals uw code het verwacht. Voor bredere integers (u32 vs i32) geldt dezelfde logica met verschillende breekpunten.

Hoe groot een getal kan de tool verwerken?

Arbitrair — we gebruiken JavaScript BigInt intern, dus 4096-bit RSA-sleutels converteren net zo makkelijk als 8-bit bytes. Het bitwise-ops-paneel heeft een breedte nodig (8 tot 64 bits, signed of unsigned) zodat two's complement gedefinieerd is; voorbij 64 bits behandelen we alle waarden als unsigned en tonen geen negatieve interpretaties. Voor cryptografische-schaal-getallen werken decimaal/hex/binair allemaal, maar de bitwise-tabel stopt redelijkerwijs bij 64.

Wat is de prefix-conventie?

De meeste ecosystemen zijn het eens: 0b voor binair (Python, JS, Rust), 0o voor octaal (Python, JS, Rust — de oudere kale-leidende-nul-vorm is afgekeurd), 0x voor hex (universeel). Onze tool accepteert input met of zonder prefixes en zendt resultaten altijd uit in de conventionele prefixed vorm. C/C++ gebruikt kale-leidende-nul voor octaal (0755), wat een footgun is — wij sturen die vorm nooit uit.

Waarom gedraagt shift-right zich soms anders?

Er zijn twee right-shifts: logisch (>>>) vult de hoge bits met 0 — gebruikt voor unsigned waarden. Arithmetic (>>) vult met het tekenbit — behoudt het teken van negatieve getallen in two's complement. -8 >> 1 = -4 (arithmetic) maar -8 >>> 1 = 2147483644 (logisch, 32-bit). De tool exposeert beide als aparte knoppen.