UTILS.
100% in de browser
🔢

Two's-complement-converter

Converteer signed integers naar/van two's-complement binair en hex bij 4, 8, 16, 32 of 64-bits breedte, met one's complement en unsigned interpretatie.

Voer hierboven een getal of bitpatroon in.

Over deze tool

De Two's-complement-converter codeert een signed integer naar zijn two's-complement binaire en hexadecimale weergave bij een bitbreedte die je kiest (4, 8, 16, 32 of 64 bits), en decodeert een binair of hex-patroon terug naar de signed waarde die het voorstelt. Het gebruikt overal BigInt, zodat 64-bits waarden exact worden verwerkt zonder precisieverlies.

Voor een breedte van N bits is het signed bereik −2^(N−1) tot 2^(N−1)−1. Om een decimaal d te coderen: als d niet-negatief is, is het patroon simpelweg d; als d negatief is, is het patroon 2^N + d (equivalent: inverteer alle bits van |d| en tel 1 op). De tool geeft de N-bits met nullen aangevulde binair, de N/4-cijferige hex, het one's complement (bitsgewijze NOT), en de unsigned interpretatie van dezelfde bits, en markeert een overflow-fout wanneer een waarde niet in de geselecteerde breedte past.

Om te decoderen plak je een binair of hex-patroon en de tool leest het bovenste bit: als het meest significante bit gezet is, is de waarde patroon − 2^N (negatief), anders is het het patroon zelf. Het toont altijd zowel de signed als unsigned lezing naast elkaar, wat precies de ambiguïteit is die two's complement op hardwareniveau oplost. Alle berekeningen zijn lokaal in je browser.

Veelgestelde vragen

Wat is het bereik voor elke bitbreedte?
Een breedte van N bits stelt signed waarden voor van −2^(N−1) tot 2^(N−1)−1. Dus 8-bits omspant −128 tot 127, 16-bits −32768 tot 32767, en 32-bits ongeveer ±2,1 miljard. Waarden buiten het bereik geven een overflow-waarschuwing.
Hoe wordt een negatief getal gecodeerd?
Neem de magnitude, inverteer elk bit (one's complement), en tel 1 op. Equivalent is het patroon gelijk aan 2^N plus het negatieve getal. Bijvoorbeeld −1 in 8 bits is 11111111, en −42 is 11010110.
Waarom ook de unsigned waarde tonen?
Hetzelfde bitpatroon heeft twee lezingen: signed (two's complement) en unsigned. Beide tonen maakt duidelijk dat bijvoorbeeld het 8-bits patroon 11111111 −1 signed is maar 255 unsigned — de interpretatie hangt af van hoe de hardware het behandelt.
Kan het 64-bits waarden exact verwerken?
Ja. De converter gebruikt BigInt-rekenkunde met willekeurige precisie, zodat 64-bits patronen en hun signed waarden exact worden berekend zonder de afronding die gewone JavaScript-getallen boven 2^53 zouden introduceren.

Meer tools