Binær til Decimal Omregner
Omregn binære tal til decimal og decimal til binær øjeblikkeligt. Understøtter op til 64-bit tal. Denne gratis omregner giver øjeblikkelige, nøjagtige resultater.
Hvordan Binary-to-Decimal Konvertering Fungerer
Binary (bas-2) bruger kun cifrene 0 og 1. Hver position repræsentere en potens af 2, der dobles fra venstre til højre. For at konvertere binary til decimal, ganger man hver binary cifre med sin plads værdi og summerer resultaterne.
Eksempel: Konverter 1011₂ til decimal
- Position 3 (venstre): 1 × 2³ = 1 × 8 = 8
- Position 2: 0 × 2² = 0 × 4 = 0
- Position 1: 1 × 2¹ = 1 × 2 = 2
- Position 0 (højre): 1 × 2⁰ = 1 × 1 = 1
- Total: 8 + 0 + 2 + 1 = 11
For decimal til binary, gentag med at dele af 2 og registrer rester fra bunden til toppen. 11 ÷ 2 = 5 R1, 5 ÷ 2 = 2 R1, 2 ÷ 2 = 1 R0, 1 ÷ 2 = 0 R1 → læs rester opad: 1011.
Denne positionelle notationssystem fungerer på samme måde som decimal — bare med en anden base. I decimal (bas-10), er tallet 347 3 × 10² + 4 × 10¹ + 7 × 10⁰ = 300 + 40 + 7. Binary bruger samme princip med potenser af 2 i stedet for potenser af 10.
Binary Plads Værdier Reference
Den 8-bit byte er den grundlæggende enhed for computerlagring. Her er den fuldstændige plads værdi tabel for 8-bit tal (0-255):
| Bit position | Power of 2 | Decimal value |
|---|---|---|
| Bit 7 (MSB) | 2⁷ | 128 |
| Bit 6 | 2⁶ | 64 |
| Bit 5 | 2⁵ | 32 |
| Bit 4 | 2⁴ | 16 |
| Bit 3 | 2³ | 8 |
| Bit 2 | 2² | 4 |
| Bit 1 | 2¹ | 2 |
| Bit 0 (LSB) | 2⁰ | 1 |
En byte kan repræsentere enhver værdi fra 0 (00000000₂) til 255 (11111111₂). To bytes (16 bit) dækker 0-65.535. Fire bytes (32 bit) dækker 0-4.294.967.295.
Udvidet Potenser af 2 Tabel
For programmer og computervidenskabsfolk er det vigtigt at kende potenser af 2 op til 2⁶⁴ for at forstå hukommelse adresse, data typer og systemgrænser:
| Power | Decimal Value | Signifikans |
|---|---|---|
| 2⁰ | 1 | Den mindste enhed (1 bit) |
| 2⁸ | 256 | 1 byte interval (0-255) |
| 2¹⁰ | 1.024 | 1 KiB (kibibyte) |
| 2¹⁶ | 65.536 | 16-bit interval; TCP-portgrænse |
| 2²⁰ | 1.048.576 | 1 MiB (mebibyte) |
| 2²⁴ | 16.777.216 | 24-bit farve (16,7M farver) |
| 2³⁰ | 1.073.741.824 | 1 GiB (gibibyte) |
| 2³² | 4.294.967.296 | 32-bit adresse rum; IPv4 maks |
| 2⁴⁰ | 1.099.511.627.776 | 1 TiB (tebibyte) |
| 2⁶⁴ | 18.446.744.073.709.551.616 | 64-bit adresse rum; moderne CPU'er |
Notér forskellen mellem binary prefixer (KiB, MiB, GiB — potenser af 2) og SI prefixer (KB, MB, GB — potenser af 10). 1 GB = 1.000.000.000 byte; 1 GiB = 1.073.741.824 byte. Denne ~7% forskel forklarer, hvorfor en "500 GB" harddisk viser som ~465 GiB i din OS (som typisk bruger binary enheder indbygget).
Almindelige Binary Værdier i Computing
Disse binary værdier optræder ofte i programmering, netværk og systemadministration:
| Binary | Decimal | Hexadecimal | Context |
|---|---|---|---|
| 00000000 | 0 | 0x00 | NULL byte, sort farvekanal |
| 00001010 | 10 | 0x0A | Linjespring (LF) karakter — Unix newline |
| 00001101 | 13 | 0x0D | Retur (CR) — Windows newline del |
| 00100000 | 32 | 0x20 | Tomme karakter (ASCII) |
| 01000001 | 65 | 0x41 | ASCII 'A' |
| 01100001 | 97 | 0x61 | ASCII 'a' (skelner fra 'A' ved bit 5) |
| 01111111 | 127 | 0x7F | Localhost IP (sidste oktet); DEL karakter |
| 10000000 | 128 | 0x80 | Start af udvidet ASCII / tegnbit |
| 11000000 | 192 | 0xC0 | Class C-netværkspræfiks (192.x.x.x) |
| 11111111 | 255 | 0xFF | Broadcast; maks byte; hvid i RGB |
Binary, Hexadecimal og Octal Sammenligning
Programmer bruger forskellige talbaser afhængigt af konteksten. Her er hvordan de samme værdier optræder i hver system:
| Decimal | Binary | Hexadecimal | Octal | Brug |
|---|---|---|---|---|
| 0 | 0000 | 0x0 | 0o0 | 0 |
| 7 | 0111 | 0x7 | 0o7 | Unix rettigheder (rwx) |
| 10 | 1010 | 0xA | 0o12 | — |
| 15 | 1111 | 0xF | 0o17 | Maks 4-bit (nibble) |
| 16 | 10000 | 0x10 | 0o20 | — |
| 127 | 1111111 | 0x7F | 0o177 | Maks signet 8-bit |
| 255 | 11111111 | 0xFF | 0o377 | Maks usignet 8-bit |
| 511 | 111111111 | 0x1FF | 0o777 | Unix rettigheder rwxrwxrwx |
| 1023 | 1111111111 | 0x3FF | 0o1777 | Maks 10-bit (ADC) |
Hexadecimal er den mest almindelige forkortelse for binary, fordi hver hex cifre svarer til præcis 4 binary cifre — gør omregning let. Octal svarer til 3 cifre per cifre og bruges primært til Unix filrettigheder (f.eks. chmod 755 = 111 101 101 i binary = rwxr-xr-x).
Signerede Binære Tal (To's Komplement)
Computere repræsentere negative tal ved hjælp af to's komplement — standarden defineret af IEEE og brugt af næsten alle moderne processorer. I en 8-bit to's komplement-system:
| Binær | Usignet Decimal | Signeret (To's Komplement) |
|---|---|---|
| 00000000 | 0 | 0 |
| 00000001 | 1 | +1 |
| 01111111 | 127 | +127 (max positiv) |
| 10000000 | 128 | −128 (min negativ) |
| 10000001 | 129 | −127 |
| 11111110 | 254 | −2 |
| 11111111 | 255 | −1 |
For at negere et tal i to's komplement: invert alle bit og tilføj 1. Eksempel: +5 = 00000101 → invert → 11111010 → tilføj 1 → 11111011 = −5.
De fælles intervaller for almindelige heltalstyper:
| Type | Bits | Usignet Rækkevidde | Signeret Rækkevidde |
|---|---|---|---|
| byte / uint8 | 8 | 0 til 255 | −128 til +127 |
| short / int16 | 16 | 0 til 65.535 | −32.768 til +32.767 |
| int / int32 | 32 | 0 til 4.294.967.295 | −2.147.483.648 til +2.147.483.647 |
| long / int64 | 64 | 0 til 18,4 × 10¹⁸ | −9,2 × 10¹⁸ til +9,2 × 10¹⁸ |
Binær i Dagens Teknologi
Binær er grundlaget for alle moderne computere, fordi transistorer har to stabile tilstande (tændt/af, 1/0). Vigtige anvendelser:
- Filstørrelser: 1 kilobyte = 2¹⁰ = 1.024 byte; 1 megabyte = 2²⁰ = 1.048.576 byte; 1 gigabyte = 2³⁰ byte
- Farver: RGB-farver er tre 8-bit værdier. #FF5733 i hex = (255, 87, 51) i decimal = (11111111, 01010111, 00110011) i binær
- ASCII-kodning: Bogstaven 'A' = decimal 65 = binær 01000001; 'a' = 97 = 01100001
- Unicode: De fleste teksttegn passer i 16-bit binær (0–65.535 rækkevidde)
- IP-adresser: IPv4-adresser er fire 8-bit binære grupper: 192.168.1.1 = 11000000.10101000.00000001.00000001
At forstå binær direkte hjælper i programmering (bitvise operationer, flags), netværksarbejde (IP/subnet-kalkulationer) og arbejde med lav-niveau hardware.
Binær Arithmetik: Addition og Subtraktion
Binær aritmetik følger samme regler som decimal, men med kun to cifre. Additionstabellen er:
| A | B | Sum | Carry |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Eksempel: 1011 + 0110
Arbejde fra højre til venstre: 1+0=1, 1+1=10 (skriv 0 med 1 over), 0+1+1=10 (skriv 0 med 1 over), 1+0+1=10 (skriv 0 med 1 over). Resultat: 10001 (decimal: 11+6=17)
Subtraktion i hardware udføres typisk ved at tilføje to's komplement af subtrahenden. For at beregne A−B, beregner processoren A + (−B), hvor −B er to's komplement af B. Dette tillader en enkelt adder-circuit til at håndtere både addition og subtraktion.
Bitvise Operationer
Programmeringssprog tilbyder bitvise operatører, der manipulerer enkelte bit. Disse er grundlæggende for lav-niveau programmering, integreret systemer og ydehastigheds-optimisering:
| Operation | Symbol | Eksempel (8-bit) | Resultat | Brug |
|---|---|---|---|---|
| AND | & | 10110101 & 11110000 | 10110000 | Maskering af bit, udtrækning af felter |
| OR | | | 10110101 | 00001111 | 10111111 | Indsætning af bit, kombination af flags |
| XOR | ^ | 10110101 ^ 11111111 | 01001010 | Toggling af bit, enkel kryptering |
| NOT | ~ | ~10110101 | 01001010 | Bit-inversering |
| Left shift | << | 00000101 << 2 | 00010100 | Gange med 2ⁿ |
| Right shift | >> | 00010100 >> 2 | 00000101 | Dividere med 2ⁿ |
Bit-shifting er betydeligt hurtigere end gange/dividere i mange processorer. x << 1 er lig med x × 2, og x >> 1 er lig med x ÷ 2 (integer division). Spilmotorer og integrerede firmware bruger disse operationer omfattende til ydehastighed.
Binær-kodet Decimal (BCD)
Binær-kodet Decimal repræsentere hver decimal cifre ved hjælp af sin egen 4-bit binære mønster. I modsætning til ren binær, bevarer BCD den decimal struktur:
| Decimal | Ren Binær | BCD |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
| 42 | 101010 | 0100 0010 |
| 99 | 1100011 | 1001 1001 |
| 255 | 11111111 | 0010 0101 0101 |
BCD er mindre pladsbesparende end ren binær (10 af de 16 mulige 4-bit kombinationer bruges), men det gør det nemmere at vise decimal-tal — hver nibble mapper direkte til et vist tal. BCD bruges i digitale ur, regneark, finansielle systemer (hvor præcis decimal-repræsentation er vigtig) og ældre hovedramme-databaser (COBOL, IBM EBCDIC).
Floating-Punkt-Binary (IEEE 754)
Decimal tal med fraktioner (som 3,14) lagres i binær form ved hjælp af IEEE 754-standarden. En 32-bit (single-precision) float har tre dele:
| felt | Bits | Hensigten |
|---|---|---|
| Sign | 1 | 0 = positivt, 1 = negativt |
| Exponent | 8 | Biast exponent (bias = 127) |
| Mantissa (signifikant) | 23 | Fraktionelt dele (implicit ledende 1) |
Eksempel: Det decimal tal −6,5 i IEEE 754 single-precision:
- Sign = 1 (negativt)
- 6,5 i binær form = 110,1₂ = 1,101 × 2² (normaliseret)
- Exponent = 2 + 127 (bias) = 129 = 10000001₂
- Mantissa = 10100000000000000000000 (23 bits, implicit ledende 1 oplægget)
- Full representation: 1 10000001 10100000000000000000000
Dette er hvorfor 0,1 + 0,2 ≠ 0,3 i de fleste programmeringssprog — decimalfraktionen 0,1 har en uendelig gentagende repræsentation i binær form (som 1/3 i decimal = 0,333…), så det skal runderes, hvilket introducerer små fejl. For finansielle beregninger skal bruges decimalaritmetik biblioteker (Python's decimal-module, Java's BigDecimal) i stedet for floating-point.
Karakterkodning: Fra ASCII til UTF-8
Tekst lagres som binære tal, der er knyttet til karakterer. Karakterkodningens udvikling spejler den globale udvidelse af computere:
| Kodning | År | Bits per karakter | Karakterer understøttet | Noter |
|---|---|---|---|---|
| ASCII | 1963 | 7 (lagret i 8) | 128 | Engelske bogstaver, tal, tegn |
| Udvidet ASCII (ISO 8859-1) | 1987 | 8 | 256 | Vestlige europæiske tegn (é, ñ, ü) |
| UTF-8 | 1993 | 8–32 (variabel) | 1.112.064 | Baglæns-kompatibel med ASCII; webstandard |
| UTF-16 | 1996 | 16–32 (variabel) | 1.112.064 | Brugt i Java, Windows, JavaScript intern |
| UTF-32 | 2000 | 32 (fast) | 1.112.064 | Fast bredde; sløser rum for latinske tekst |
UTF-8 koder ASCII-tegn i en enkelt byte (identisk med plain ASCII), europæiske tegn i 2 bytes, CJK-tegn i 3 bytes og emoji i 4 bytes. Over 98% af alle websteder bruger UTF-8-kodning (ifølge W3Techs, 2024).
Binære logikgater
Logikgater er de fysiske byggestenene for alle digitale kredsløb. Hver gade udfører en enkel binær operation på ét eller to indgående bits:
| Gade | Symbol | Sandkasse (A,B → Output) | Beskrivelse |
|---|---|---|---|
| OG | A·B | 0,0→0; 0,1→0; 1,0→0; 1,1→1 | Output er 1 kun når begge indgående er 1 |
| ELLER | A+B | 0,0→0; 0,1→1; 1,0→1; 1,1→1 | Output er 1 når mindst én af indgående er 1 |
| IKKE | ¬A | 0→1; 1→0 | Inverterer indgangen |
| NAND | ¬(A·B) | 0,0→1; 0,1→1; 1,0→1; 1,1→0 | OG følger af IKKE — universel gade |
| XOR | A⊕B | 0,0→0; 0,1→1; 1,0→1; 1,1→0 | Output er 1 når indgående forskellige |
NAND-gaden kaldes en universel gade fordi enhver anden logikfunktion kan bygges ved hjælp af kun NAND-gader. Moderne CPU'er indeholder milliarder af transistorer, der er arrangeret i NAND- og NOR-gader, som så kombineres til addere, multiplexere, flip-flops og alle andre byggestenene i en processor. Apple M3-chippet indeholder omkring 25 milliarder transistorer — hver en mikroskopisk binær slukkelse, der enten er på (1) eller af (0).
XOR-gaden har en særlig egenskab: den udgiver 1 når de to indgående er forskellige. Dette gør den til grundlaget for binær addition (summen bit af en halv adder), fejlafhængighed (paritetskontrol) og enkel kryptering (XOR-kryptering).
Historien om Binær: Fra Leibniz til Moderne Computere
Binær-talsystemet har en rigtig intellektuel historie:
| År | Person/Event | Bidrag |
|---|---|---|
| ~300 f.Kr. | Pingala (indisk matematiker) | Brugte en binær-lignende system til at klassificere poetiske meter |
| 1679 | Gottfried Leibniz | Formelt beskrev moderne binæraritmetik; så forbindelser til det kinesiske I Ching |
| 1847 | George Boole | Udgaavde "The Mathematical Analysis of Logic" — Boolean-algebra grundlag |
| 1937 | Claude Shannon (MIT-afhandling) | Visede, at Boolean-algebra kunne modellere elektriske slukkikseringscircuit |
| 1945 | John von Neumann | Forlagde lagret-program-baseret binær computerarkitektur (von Neumann-arkitektur) |
| 1971 | Intel 4004 | Den første kommercielle mikroprocessor — 2.300 transistorer, 4-bit binær |
| 2024 | Modern CPU'er | Milliarder af transistorer; 64-bit binærarkitektur standard |
Leibniz' indsigt, at alle tal kunne udtrykkes ved hjælp af kun 0 og 1, var rent matematisk — han havde aldrig forestillet sig elektroniske computere. Shannons 1937-magisterafhandling forbundet Boolean (binær) logik til elektriske relæer, og skabte den teoretiske grundlag for alle digitale elektronik.
Binær i Netværk: IP-adresser og Subnetmasks
For at forstå binær er essentiel for netværksadministration. IPv4-adresser og subnetmasks er 32-bit binære tal:
| Beskrivelse | Decimaltallet | Binær |
|---|---|---|
| IP-adresse | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| Subnetmask (/24) | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| Netværksadresse | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
| Udsendelsesadresse | 192.168.1.255 | 11000000.10101000.00000001.11111111 |
Netværksadressen beregnes ved at AND'et IP med subnetmasken. Udsendelsesadressen sætter alle værtshost-bits til 1. Antallet af brugbare værtshost-adresser = 2^(32−prefix) − 2. For en /24-netværk: 2⁸ − 2 = 254 brugbare værtshosts.
Almindelige subnetstørrelser:
| CIDR | Subnetmask | Hosts | Typisk brug |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | Enkelt værtshost |
| /30 | 255.255.255.252 | 2 | Punkt til punkt-linje |
| /24 | 255.255.255.0 | 254 | Standard LAN |
| /16 | 255.255.0.0 | 65.534 | Stor campus-netværk |
| /8 | 255.0.0.0 | 16.777.214 | Class A-allokering |
Ofte Stillede Spørgsmål
Hvordan konverterer jeg binær 1100 til decimal?
1100 i binær: 1×8 + 1×4 + 0×2 + 0×1 = 8 + 4 = 12. Så binær 1100 = decimal 12.
Hvad er 255 i binær?
255 i binær er 11111111 — alle otte bits sættes til 1. Dette er det maksimale værdi af en enkelt byte og optræder i netværksadministration (subnetmask 255.255.255.0) og farver (fuld rød = 255, 0, 0).
Hvordan konverterer jeg decimal 100 til binær?
Udregn gentagen ved at dele med 2: 100÷2=50 R0, 50÷2=25 R0, 25÷2=12 R1, 12÷2=6 R0, 6÷2=3 R0, 3÷2=1 R1, 1÷2=0 R1. Læs resterne opad: 1100100₂. Verificer: 64+32+4 = 100. ✓
Hvad er forskellen mellem binær og hexadecimal?
Binær bruger basis 2 (tallene 0-1); hexadecimal bruger basis 16 (tallene 0-9, A-F). Hex er en komprimeret forkortelse for binær — hver hex-digit repræsenterer præcis 4 binære bits. Eksempel: hex FF = binær 11111111 = decimal 255.
Hvorfor bruger computere binær i stedet for decimal?
Elektriske kredsløb er naturligt binære: en transistor er enten på (1) eller af (0), og spændingen er enten høj eller lav. Decimal ville kræve 10 forskellige spændingsniveauer, hvilket er vanskeligt at implementere pålideligt i hardware. Binær er støj-tolerant og passer perfekt til logiske sand/falske operationer.
Hvad er to's komplement?
To's komplement er standardmetoden for at repræsentere tegnede (positive og negative) heltal i binær. For at finde to's komplement (negativ) af et tal: omvend alle bits og tilføj 1. I en 8-bit system, +5 er 00000101, og -5 er 11111011. Den venstrebit er tegnbit: 0 = positiv, 1 = negativ. Dette system tillader hardware at bruge samme adder-kredsløb for både addition og subtraktion.
Hvordan konverterer jeg binær til hexadecimal?
Grupper binærbidtene i sætter af 4 fra højre til venstre, og konverterer så hver gruppe. Eksempel: 10110101₂ → 1011 0101 → B5₁₆. Grupperne er: 0000=0, 0001=1, 0010=2, ..., 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F.