Tallsystemkonverterer med negative tallstøtte
Datamaskinenes verden kjører på nuller og enere, men mennesker tenker i tiere. Og programmerere? De må forstå alt imellom. Enten du feilsøker lavnivåkode, setter farger i CSS, beregner IP-masker eller løser datalaborasjonsoppgaver, støter du på behovet for å konvertere tall mellom tallsystemer.
Vanlige kalkulatorer i Windows eller på mobilen er ofte trege og klønete. Vår intelligente tallsystemkonverterer ble designet av utviklere for utviklere. Den tilbyr umiddelbar konvertering i sanntid, støtte for ekstremt store tall, og er et av få onlineverktøy som håndterer negative tall i binær form korrekt.
Hva kan denne tallsystemkonvertereren gjøre?
Under utviklingen av dette verktøyet fokuserte vi på å løse de vanligste utfordringene for programmerere:
- Sanntidsreaktivitet: Ingen “Beregn”-knapp. Begynn å skrive i HEX-feltet og se umiddelbart hvordan BIN og DEC endres.
- Støtte for negative tall (Signed Integers): De fleste onlinekonverterere feiler når du skriver
-5. Ikke vi. Takket være valget av bitdybde (8, 16, 32, 64 biter) simulerer vi prosessorens nøyaktige oppførsel ved hjelp av det såkalte toerkomplementet. - Lesbarhet av binærkode: Å se på
1110101011011110er slitsomt for øynene. Verktøyet vårt kan automatisk formatere utdata etter 4 biter (nibbles) til1110 1010 1101 1110, noe som radikalt reduserer feil ved avskrift. - BigInt-støtte: Trenger du å konvertere et 64-biters tall eller en hash? Standard JavaScript stopper ved tallet $2^{53}$. Vår motor håndterer vilkårlig lange tall i “Uten fortegn”-modus.
Guide til tallsystemer: Når skal du bruke hvilken?
1. Desimalsystemet (DEC - Decimal)
- Base: 10 (siffer 0-9)
- Bruksområder: Vanlig liv, finans, telling av løkker i kode.
- Interessant fakta: Datamaskiner forstår det ikke direkte, de må konvertere det til binært.
2. Binærsystemet (BIN - Binary)
- Base: 2 (siffer 0, 1)
- Bruksområder: Maskinkode, logiske porter, IP-adressmaskering.
- Tips: Hvert siffer representerer én bit. 8 biter danner 1 byte.
3. Heksadesimalsystemet (HEX - Hexadecimal)
- Base: 16 (siffer 0-9, bokstaver A-F)
- Bruksområder: Kompakt representasjon av binærkode. Ett HEX-tegn representerer nøyaktig 4 biter (nibble). To tegn (f.eks.
FF) representerer en hel byte. - Eksempler:
- Farger på nett:
#FF5733(Rød, Grønn, Blå). - MAC-adresser:
00:1A:2B:3C:4D:5E. - Minneutskrifter (Memory dumps).
- Farger på nett:
4. Oktalsystemet (OCT - Octal)
- Base: 8 (siffer 0-7)
- Bruksområder: Historisk sett eldre datamaskiner, i dag spesielt Linux-tillatelser (chmod).
- Eksempel: Kommandoen
chmod 755setter rettighetene rwx-rx-rx (lese, skrive, kjøre).
Hvordan håndtere negative tall korrekt?
Dette er den mest avanserte funksjonen i vår konverterer. I dataminnet eksisterer det ikke et “minus”-tegn. For å lagre et negativt tall bruker datamaskinen oftest metoden toerkomplement (Two’s Complement).
Resultatet av å konvertere et negativt tall avhenger imidlertid av hvor mange biter variabelen er tildelt. Derfor finner du en bryter for Bitdybde i topplinjen.
Eksempel: Hvordan ser tallet -5 ut?
Prøv det selv i vår konverterer:
-
Sett bitdybden til 8-bit.
- Skriv inn i DEC:
-5. - HEX-resultat:
FB. - BIN-resultat:
1111 1011. - Forklaring: $256 - 5 = 251$ (som er FB).
- Skriv inn i DEC:
-
Sett bitdybden til 16-bit.
- Skriv inn i DEC:
-5. - HEX-resultat:
FFFB. - Forklaring: Fordi vi har mer plass, fyller “enerne” resten av plassen til venstre.
- Skriv inn i DEC:
-
Sett bitdybden til Uten fortegn (Unsigned).
- Hvis du skriver inn
-5, blir feltet rødt. Denne modusen støtter ikke negative tall, da det ville kreve uendelig mange enere.
- Hvis du skriver inn
Profftips: Hvis du jobber med farger eller IP-adresser, bruk alltid modusen “Uten fortegn”. Hvis du gjør oppgaver i C/C++ eller assembler, bytt til 32-bit eller 64-bit.
Hurtigkonverteringstabell (Cheat Sheet)
For rask orientering viser vi her de grunnleggende verdiene som enhver “IT-person” bør kunne utenat.
| Desimalt (DEC) | Heksadesimalt (HEX) | Binært (BIN) | Merknad |
|---|---|---|---|
| 0 | 00 | 0000 | Null |
| 1 | 01 | 0001 | |
| 10 | 0A | 1010 | |
| 15 | 0F | 1111 | Maksimal verdi for 4 biter (Nibble) |
| 16 | 10 | 0001 0000 | |
| 127 | 7F | 0111 1111 | Maks verdi for signert 8-bit (char) |
| 255 | FF | 1111 1111 | Maks verdi for usignert 8-bit (byte) |
| 65 535 | FFFF | … | Maks verdi for 16-bit |
Ofte stilte spørsmål (FAQ)
Hva betyr "Bitdybde"?
Angir hvor mye minne som er reservert for et tall.- 8-bit: Verdier fra 0 til 255 (eller -128 til 127). Tilsvarer typen
charellerbyte. - 16-bit: Verdier opp til 65 535. Tilsvarer typen
short. - 32-bit: Standard
inti moderne språk. - 64-bit: For svært store tall (
long long,BigInt).
Hvorfor skrives tallet 255 i HEX som FF?
Heksadesimalsystemet har 16 sifre (0-9 og A-F), hvor F har verdien 15. TalletFF beregnes som: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Hvordan konverterer jeg en HEX-farge til RGB?
En farge på nettet, f.eks.#E05412, består av tre bytes: Rød (E0), Grønn (54), Blå (12).
Skriv inn "E0" i HEX-feltet i vår konverterer -> du får 224.
Skriv inn "54" -> du får 84.
Skriv inn "12" -> du får 18.
Resultatet er rgb(224, 84, 18).
Hva betyr prefiksene 0x, 0b eller 0o?
For å skille mellom tallsystemene bruker programmerere prefikser:0x= Heksadesimal (f.eks. 0xFF)0b= Binær (f.eks. 0b101)0o= Oktal (f.eks. 0o755)
Hvorfor ble feltet mitt rødt?
Det er en funksjon for inndatavalidering. Det betyr at du har skrevet inn et tegn som ikke tilhører det gitte tallsystemet. For eksempel:- Bokstaven "G" i HEX (kun A-F er tillatt).
- Sifferet "2" i BIN (kun 0 og 1 er tillatt).
- Sifferet "8" i OCT (kun 0-7 er tillatt).