Taltalsystem

Sammenlign Beregninger

Downloads

Inkluderer dine input og resultater for denne beregning, plus eventuelle yderligere beregninger du har sammenlignet.

At Omskrive Den Samme Værdi På Tværs af Binært, Oktalt, Decimalt og Hexadecimalt

Et talsystem (eller “radix”) er, hvor mange forskellige cifre et talsystem bruger, før det overfører til den næste pladsværdi — decimal bruger 10 (0–9), binært bruger 2 (0–1), oktalt bruger 8 (0–7), og hexadecimalt bruger 16 (0–9 og derefter A–F). Indtast et helt tal i et hvilket som helst af disse fire talsystemer, og denne beregner viser den samme værdi skrevet i alle fire på én gang.

Binært er, hvordan computere repræsenterer hver værdi internt (hvert ciffer er én “bit”); hexadecimal er en almindelig forkortelse for binært i programmering (hvert hex-ciffer står for præcis 4 binære cifre, så det er langt mere kompakt at læse og indtaste); oktalt dukker op i ældre Unix-filrettigheder og nogle lavniveau-sammenhænge. Decimal er blot hverdagens base-10-system.

Formlen

Ethvert positionelt talsystem virker på samme måde: hvert ciffer ganges med talsystemet opløftet i dets pladsværdipotens, og summeres derefter:

Værdi=i=0ndi×Talsystemi\vA{\text{Værdi}} = \sum_{i=0}^{n} d_i \times \vB{\text{Talsystem}}^i

hvor did_i er cifferet ved position ii (talt fra 0 ved det yderste højre ciffer). At konvertere til et andet talsystem dividerer gentagne gange decimalværdien med det nye talsystem, og noterer hver rest — det omvendte af summen ovenfor.

Eksempel

At konvertere binært 11111111 til dets tre andre talsystemer:

  1. Læs fra højre til venstre, hver 1 bidrager med sin pladsværdi: 27+26+25+24+23+22+21+20=2552^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 = 255.
  2. Decimalt: 255.
  3. Oktalt: at dividere 255 med 8 gentagne gange (255 ÷ 8 = 31 r7, 31 ÷ 8 = 3 r7, 3 ÷ 8 = 0 r3) læser resterne bund-til-top som 377.
  4. Hexadecimalt: 255 ÷ 16 = 15 r15, 15 ÷ 16 = 0 r15 — begge rester er 15 (F i hex), hvilket giver FF.

Vigtige Faktorer At Overveje

  • En enkelt byte (8 bit) kan repræsentere præcis 256 forskellige værdier — 0 til 255 i decimal, eller 00 til FF i hexadecimal. Dette er præcis grunden til, at 255/FF er en så almindelig referenceværdi inden for databehandling — det er den maksimale værdi, en enkelt byte kan indeholde, hvilket dukker op overalt fra RGB-farvekanaler (0-255 per kanal) til netværk og filformater.
  • Oktal var historisk mere almindeligt, end det er i dag, hovedsageligt på grund af ældre computerordstørrelser. Oktal (base 8) passer pænt sammen med grupper af 3 binære cifre, hvilket passede computere bygget omkring ordstørrelser delelige med 3 bit — moderne databehandling er hovedsageligt skiftet til hexadecimal (som passer sammen med grupper af 4 bit), da de fleste moderne hardwaredele bruger ordstørrelser delelige med 4 og 8, selvom oktal stadig optræder i specifikke sammenhænge som Unix-filrettighedsnotation (f.eks. chmod 755).
  • En almindelig programmørfejl er at forveksle et tals talsystem ud fra konteksten alene. Cifrene “10” betyder meget forskellige værdier afhængigt af talsystemet — 10 i decimal, 2 i binært, 8 i oktalt, 16 i hexadecimalt — hvilket er grunden til, at programmeringssprog typisk kræver et eksplicit præfiks (som 0x for hex eller 0b for binært) for at fjerne enhver tvetydighed om, hvilket talsystem der menes.
  • Ethvert helt tal kan teoretisk repræsenteres i ETHVERT talsystem, ikke kun disse fire. Binært, oktalt, decimalt og hexadecimalt er blot de fire talsystemer med den mest almindelige virkelige brug inden for databehandling og hverdagsmatematik — det samme positionelle notationsprincip, denne beregner bruger, udvides til ethvert talsystem, som base 3, base 20, eller base 60 (grundlaget for, hvordan tid og vinkler traditionelt opdeles).

Almindelige Fejl

  • At læse et tal med et blandet talsystem uden præfiks som decimal som standard. “10” betyder ti i decimal, men kun to i binært — tjek altid (eller angiv), hvilket talsystem et tal er skrevet i, før du regner med det.
  • At antage, at foranstillede nuller ændrer værdien. Ligesom i decimal er 0011 i binært den samme værdi som 11 — foranstillede nuller er kun meningsfulde til fastbredde-formatering (som at vise en hel byte), ikke for tallets faktiske værdi.
  • At glemme, at hex-cifre over 9 bruger bogstaver, ikke tocifrede tal. Hexadecimalt ti skrives som A, ikke 10 — at skrive 10 i hex betyder faktisk seksten i decimal, en almindelig kilde til betydelige fejl.
  • At forsøge at konvertere et negativt tal direkte. Som FAQ’en ovenfor bemærker, afhænger negative binære/hex-værdier af en valgt bitbredde og en to’s-komplement-konvention — der er ingen enkelt entydig konvertering, som der er for ikke-negative hele tal.

Godt at Vide

  • Arbejder du med netværksadresser i stedet for vilkårlige tal? IP Subnet Beregner anvender det samme binære/decimale forhold specifikt på IPv4-adresser.
  • Har du brug for meget store eller meget små decimaltal i en kompakt form? Videnskabelig Notation Beregner håndterer den slags konvertering i stedet.
  • Nysgerrig efter et meget ældre, positionsrelateret talsystem? Romertal Beregner konverterer til og fra romertal, som bruger en helt anden (ikke-positionel) tilgang.

Kilde: Standard konvertering af positionelle talsystemer.

Ofte Stillede Spørgsmål

Hvad er et talsystem (radix)?

Et talsystem er, hvor mange forskellige cifre et talsystem bruger, før det overfører til den næste pladsværdi. Decimal (base 10) bruger cifrene 0-9; binært (base 2) bruger kun 0 og 1; oktalt (base 8) bruger 0-7; hexadecimalt (base 16) bruger 0-9 og derefter bogstaverne A-F til at repræsentere 10-15.

Hvorfor bruger computere binært?

Computerhardware er bygget af kontakter, der kun nogensinde er helt tændt eller helt slukket, hvilket kortlægger naturligt til binærs to cifre (1 og 0). Enhver værdi, en computer gemmer eller behandler, repræsenteres i sidste ende i binært, selvom programmører som regel arbejder med mere menneskeligt læsbare talsystemer som decimal eller hexadecimal.

Hvorfor bruges hexadecimal i stedet for binært i programmering?

Hvert hexadecimalt ciffer repræsenterer præcis 4 binære cifre (bits), så et hex-tal er cirka en fjerdedel så langt som det tilsvarende binære tal, mens det repræsenterer præcis den samme værdi -- meget lettere for en person at læse, indtaste og sammenligne end en lang streng af 1'ere og 0'ere.

Kan denne beregner håndtere negative tal?

Nej -- at repræsentere et negativt tal i binært eller hexadecimalt kræver at vælge en fast bitbredde og en tokomplement-konvention, som varierer efter kontekst (8-bit, 16-bit, 32-bit, osv.). Denne beregner er afgrænset til ikke-negative hele tal, hvor konverteringen er entydig.

Bekræft din alder

For at oprette en konto skal du angive din fødselsmåned og -år.