Det binære systemet , også kalt det dyadiske [ 1 ] systemet i informatikk , er et tallsystem der tall er representert med kun to tall : 0 ( null ) og 1 ( en ). Det er et av systemene som brukes i datamaskiner , fordi de fungerer internt med to spenningsnivåer , der deres naturlige nummereringssystem er det binære systemet. [ 2 ]
Den gamle indiske matematikeren Pingala presenterte den første kjente beskrivelsen av et binært tallsystem i det tredje århundre f.Kr., som falt sammen med hans oppdagelse av konseptet med tallet null.
I det gamle Kina, i den klassiske teksten til I Ching , beskrives en komplett serie på 8 trigram og 64 heksagrammer (analogt med 3 - bit ) og 6-bits binære tall. Lignende serier med binære kombinasjoner har også blitt brukt i tradisjonelle afrikanske spådomssystemer, som Ifa , så vel som i vestlig middelaldersk geomancy .
Den kinesiske lærde og filosofen Shao Yong på 1000-tallet utviklet et ordnet binært arrangement av I Ching- heksagrammene , som representerer desimalsekvensen fra 0 til 63, og en metode for å generere det samme.
I 1605 snakket Francis Bacon om et system der bokstavene i alfabetet kunne reduseres til sekvenser av binære sifre, som deretter kunne kodes som knapt synlige variasjoner på fonten til enhver vilkårlig tekst.
I 1670 utgir Juan Caramuel sin bok Mathesis Biceps; og på sidene XLV til XLVIII gir han en beskrivelse av det binære systemet.
Det moderne binære systemet ble fullstendig dokumentert av Leibniz på 1700-tallet i hans artikkel " Explanation de l'Arithmétique Binaire ". Den nevner de binære symbolene som brukes av kinesiske matematikere. Leibniz brukte et matematisk system av to variabler - 0/1 - for å transformere språklige termer og på denne måten distribuere informasjon, akkurat som det nåværende binære systemet [ 3 ] .
I 1854 publiserte den britiske matematikeren George Boole en artikkel som markerte et før og etter, med detaljer om et logikksystem som ville ende opp med å bli kalt boolsk algebra . Et slikt system vil spille en grunnleggende rolle i utviklingen av det nåværende binære systemet, spesielt i utviklingen av elektroniske kretser.
I 1937 fullførte Claude Shannon sin doktorgradsavhandling ved MIT , der han implementerte boolsk algebra og binær aritmetikk ved hjelp av releer og brytere for første gang i historien. Med tittelen A Symbolic Analysis of Switching and Relay Circuits , grunnla Shannons avhandling i utgangspunktet praktisk digital kretsdesign.
I november 1937 bygde George Stibitz , som da jobbet ved Bell Laboratories , en relébasert kalkulator - som han ga kallenavnet "Model K " (fordi han bygde den på et kjøkken ) - som brukte den binære summen til å utføre beregningene. Bell Laboratories autoriserte et fullstendig forskningsprogram på slutten av 1939, med Stibitz ved roret.
8. januar 1940 fullførte de utformingen av en "Complex Number Calculator", som var i stand til å utføre beregninger med komplekse tall . I en demonstrasjon på American Mathematical Society - konferansen , 11. september 1940, klarte Stibitz å eksternt sende kommandoer til Complex Number Calculator over telefonlinjen ved hjelp av en fjernskriver . Det var den første datamaskinen som ble brukt eksternt gjennom telefonlinjen. Noen konferansedeltakere som var vitne til demonstrasjonen inkluderte John von Neumann , John Mauchly og Norbert Wiener , som skrev om hendelsen i sine forskjellige typer memoarer der han oppnådde forskjellige prestasjoner.
Se også: Binær kodeI det binære systemet trengs bare to sifre.
Ved databehandling kan et binært tall representeres av en hvilken som helst sekvens av biter (binære sifre), som typisk representerer enhver mekanisme som er i stand til å bruke to gjensidig utelukkende tilstander. Følgende symbolsekvenser kan tolkes som den samme binære numeriske verdien:
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
¦ | − | ¦ | − | − | ¦ | ¦ | − | ¦ | ¦ |
x | enten | x | enten | enten | x | x | enten | x | x |
Y | n | Y | n | n | Y | Y | n | Y | Y |
Den numeriske verdien representert i hvert tilfelle avhenger av verdien som er tildelt hvert symbol. På en datamaskin kan de numeriske verdiene representere to forskjellige spenninger; de kan også indikere magnetiske polariteter på en magnetisk disk. En "positiv", "ja" eller "på tilstand" er ikke nødvendigvis ekvivalent med den numeriske verdien av en; dette avhenger av nomenklaturen som brukes.
I følge den vanligste representasjonen, som bruker arabiske tall, skrives binære tall vanligvis ved å bruke symbolene 0 og 1. Binære tall skrives ofte med abonnenter, prefikser eller suffikser for å indikere grunntallet. Følgende notasjoner er likeverdige:
Tallet på desimalsystemet deles på 2 , hvis hele resultatet deles igjen med 2 , og så videre til utbyttet er mindre enn divisoren, 2. Det vil si at når tallet som skal deles er 1, avsluttes divisjonen.
Deretter sorteres de fra den siste kvotienten til den første resten, de plasseres ganske enkelt i omvendt rekkefølge av hvordan de vises i divisjonen. Dette vil være det binære tallet vi ser etter.
-> Vi bestiller restene, fra sist til første: 10000011 I binært system skrives 131 10000011.
Eksempel Konverter desimaltallet 100 til binært.
En annen form for konvertering innebærer en metode som ligner på faktorisering i primtall . Det er relativt enkelt å dele et hvilket som helst tall med 2. Denne metoden består også av suksessive divisjoner. Avhengig av om tallet er partall eller oddetall, vil vi plassere en null eller en ener i høyre kolonne. Hvis det er oddetall, trekker vi en og fortsetter å dele med to, til det ikke lenger er mulig og tallet 1 er plassert. Da må vi bare ta det siste resultatet fra venstre kolonne og alle de fra høyre kolonne og bestille sifrene fra bunn til topp.
Eksempel 100|0 50|0 25|1 --> 1, 25-1=24 og vi fortsetter å dele med 2 12|0 6|0 3|1 1|1 -->Eksempel [ 4 ]
For å konvertere desimaltallet 77 til det binære systemet, vil vi lage en serie med inndelinger som vil gi følgende resultater:
77 / 2 = 38 Resterende ==> 1 38 / 2 = 19 Resterende ==> 0 19 / 2 = 9 Resten ==> 1 9 / 2 = 4 Resterende ==> 1 4 / 2 = 2 Resterende ==> 0 2 / 2 = 1 Resterende ==> 0 Siste kvotient ==> 1 Når du tar den siste kvotienten og restene i omvendt rekkefølge, er resultatet: 1001101(binær)Det er en siste metode som heter distribusjon. Den består i å fordele de nødvendige blant de påfølgende potensene av 2 slik at summen deres viser seg å være desimaltallet som skal konverteres. Ta for eksempel tallet 151, som de første 8 potensene av 2 vil være nødvendig for , siden den neste, 2 8 = 256, er større enn tallet som skal konverteres. Den begynner med å sette en 1 i 128, så det er fortsatt 23 igjen, 151-128 = 23, for å nå 151. Denne verdien oppnås ved å fordele enere mellom potensene hvis sum gir ønsket resultat og sette nuller i resten. I eksemplet viser de seg å være potensene 4, 2, 1 og 0, det vil si henholdsvis 16, 4, 2 og 1.
Eksempel 2 0 = 1|1 2 1 = 2|1 2 2 = 4|1 2 3 = 8|0 2 4 = 16|1 2 5 = 32|0 2 6 = 64|0 2 7 = 128|1 Desimal (med desimaler) til binærFor å transformere et tall fra desimalsystemet til det binære systemet:
For å konvertere fra binær til desimal, gjør følgende:
Eksempler:
Du kan også velge å bruke verdiene presentert av hver posisjon i det binære tallet som skal transformeres, fra høyre til venstre, og legge til verdiene til posisjonene som har en 1.
EksempelDet binære tallet 1010010 tilsvarer i desimal 82. Det kan representeres som følger:
legg deretter til tallene 64, 16 og 2:
For å endre fra binær med desimaler til desimal, gjør du nøyaktig det samme, bortsett fra at nullposisjonen (der to er hevet til null) er den til høyre for desimaltegnet og telles til venstre fra - 1:
Binær til desimal (med binær brøkdel)
1. Starter fra venstre side (det første tallet til høyre for kommaet), må hvert tall multipliseres med 2 hevet til den påfølgende potensen i revers (starter med potensen -1, 2 -1 ).
2. Etter å ha utført hver av multiplikasjonene, legger du alle sammen og det resulterende tallet vil være ekvivalent med desimalsystemet.
eksemplerAddisjonstabellen for binære tall er som følger:
+ | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 10 |
De mulige kombinasjonene når du legger til to biter er:
Legg merke til at å legge til 1 + 1 er 10 2 , det vil si at vi fører 1 til neste posisjon fra venstre ( carry ). Dette tilsvarer i desimalsystemet å legge til 9 + 1, som gir 10: null i posisjonen vi legger til og en bære 1 til neste posisjon.
Eksempel 1 10011000 + 00010101 ——————————— 10101101Du kan konvertere den binære operasjonen til en desimaloperasjon, løse desimalen og deretter transformere resultatet til en binær (tall). Vi opererer som i desimalsystemet: vi begynner å legge til fra høyre, i vårt eksempel, 1 + 1 = 10, så vi skriver 0 i resultatraden og bærer 1 (denne " 1 " kalles bære ) . Bæren legges så til neste kolonne: 1 + 0 + 0 = 1, og vi fortsetter til alle kolonnene er ferdige (nøyaktig som i desimal). [ 4 ]
Subtraksjon av binære tallSubtraksjonsalgoritmen i binært system er den samme som i desimalsystem. Men det er verdt å gjennomgå operasjonen av subtraksjon i desimal for å forstå den binære operasjonen, som er enklere. Begrepene som er involvert i subtraksjon kalles minuend, subtrahend og difference.
De grunnleggende subtraksjonene 0 - 0, 1 - 0 og 1 - 1 er selvinnlysende:
Subtraksjonen 0 - 1 løses på samme måte som i desimalsystemet, og tar en lånt enhet fra følgende posisjon: 0 - 1 = 1 og jeg tar 1 (denne verdien trekkes fra det oppnådde resultatet, mellom minuend og subtrahend av neste kolonne), som tilsvarer å si i desimalsystemet, 2 - 1 = 1.
eksempler 10001 11011001 -01010 -10101011 —————— ————————— 00111 00101110I desimalsystemet vil det være: 17 - 10 = 7 og 217 - 171 = 46.
For å forenkle subtraksjon og redusere muligheten for å gjøre feil, er det flere metoder:
Følgende subtraksjon, 91 - 46 = 45, i binær er:
1011011 1011011 -0101110 C2 til 0101110 er 1010010 +1010010 ———————— ———————— 0101101 10101101I resultatet har vi en bit til overs, som renner over til venstre. Men siden det resulterende tallet ikke kan være lengre enn minuend, blir den ekstra biten neglisjert.
Et siste eksempel: vi skal trekke fra 219 - 23 = 196, direkte og bruke de tos komplement:
11011011 11011011 -00010111 C2 til 00010111 er 11101001 +11101001 ————————— ————————— 11000100 111000100Og hvis vi ser bort fra venstre overløpsbit, får vi det riktige resultatet: 11000100 i binær, 196 i desimal.
Multiplikasjonstabellen for binære tall er som følger:
· | 0 | 1 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
Produktalgoritmen i binær er den samme som i desimaltall; selv om det utføres enklere, siden 0 multiplisert med et hvilket som helst tall gir 0, og 1 er det nøytrale elementet i produktet.
La oss for eksempel multiplisere 10110 med 1001:
10110 x1001 ————————— 10110 00000 00000 10110 ————————— 11000110I elektroniske systemer, hvor større tall ofte brukes, brukes en metode som kalles Booths algoritme .
11101111 x111011 __________ 11101111 11101111 00000000 11101111 11101111 11101111 _______________ 11011100010101 Divisjon av binære tallDivisjon i binær er lik desimal ; den eneste forskjellen er at når du gjør subtraksjonene, innenfor divisjonen , må disse gjøres binært.
EksempelDel 100010010 (274) med 1101 (13):
100010010 /1101 = 010101 -0000 ——————— 10001 -1101 ——————— 01000 - 0000 ——————— 10 000 - 1101 ——————— 00111 - 0000 ——————— 01110 - 1101 ——————— 00001Siden det oktale systemet har base 8, som er tredje potens av 2, og to er basen til det binære systemet, er det mulig å etablere en direkte metode for å konvertere fra base to til base åtte, uten å måtte konvertere fra binær til base. desimal og deretter fra desimal til oktal. Denne metoden er beskrevet nedenfor:
For å konvertere fra binær til oktal, gjør følgende:
1) Grupper den binære mengden i grupper på 3 x 3 fra høyre side. Hvis det på slutten av grupperingen ikke fyller ut 3 sifre, legger du til nuller til venstre.
2) Se senere den tilsvarende verdien i henhold til tabellen:
binært tall | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
oktalt tall | 0 | 1 | to | 3 | 4 | 5 | 6 | 7 |
3) Den tilsvarende mengden i oktal er gruppert fra venstre til høyre.
eksemplerHvis det binære tallet har en desimaldel, grupperes det tre og tre fra desimaltegnet til høyre etter de samme kriteriene fastsatt ovenfor for heltall. For eksempel:
0,01101 (binær) = 0,32 (oktal) Prosess: 011 = 3 01 og legg til 010 = 2 Gruppe fra venstre til høyre: 32 Legg til heltallsdel: 0,32
Oktal til binærHvert oktale siffer konverteres til sin 3-bits binære ekvivalent og settes sammen i samme rekkefølge.
EksempelFor å konvertere fra binær til heksadesimal, gjør følgende:
1) Grupper den binære mengden i grupper på 4 x 4 fra høyre side. Hvis det på slutten av grupperingen ikke fyller ut 4 sifre, legger du til nuller til venstre.
2) Se senere den tilsvarende verdien i henhold til tabellen:
binært tall | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Heksadesimalt tall | 0 | 1 | to | 3 | 4 | 5 | 6 | 7 | 8 | 9 | EN | B. | C | D | OG | F |
3) Den tilsvarende mengden i heksadesimal er gruppert fra høyre til venstre.
eksemplerMerk at for å gå fra heksadesimalt til binært, erstattes det heksadesimale tallet med 4-bits ekvivalent, lik oktal til binær.
Desimal | Binær | heksadesimal | oktal | B C D | Overskudd 3 | Grå eller reflektert |
---|---|---|---|---|---|---|
0 | 0000 | 0 | 0 | 0000 | 0011 | 0000 |
1 | 0001 | 1 | 1 | 0001 | 0100 | 0001 |
to | 0010 | to | to | 0010 | 0101 | 0011 |
3 | 0011 | 3 | 3 | 0011 | 0110 | 0010 |
4 | 0100 | 4 | 4 | 0100 | 0111 | 0110 |
5 | 0101 | 5 | 5 | 0101 | 1000 | 0111 |
6 | 0110 | 6 | 6 | 0110 | 1001 | 0101 |
7 | 0111 | 7 | 7 | 0111 | 1010 | 0100 |
8 | 1000 | 8 | 10 | 1000 | 1011 | 1100 |
9 | 1001 | 9 | elleve | 1001 | 1100 | 1101 |
10 | 1010 | EN | 12 | 0001 0000 | 1111 | |
elleve | 1011 | B. | 1. 3 | 0001 0001 | 1110 | |
12 | 1100 | C | 14 | 0001 0010 | 1010 | |
1. 3 | 1101 | D | femten | 0001 0011 | 1011 | |
14 | 1110 | OG | 16 | 0001 0100 | 1001 | |
femten | 1111 | F | 17 | 0001 0101 | 1000 |
Binær | binær faktor | heksadesimal | oktal | Desimal |
---|---|---|---|---|
0000 0010 | 2 1 | to | to | to |
0000 0100 | 2 2 | 4 | 4 | 4 |
0000 1000 | 2 3 | 8 | 10 | 8 |
0001 0000 | 2 4 | 10 | tjue | 16 |
0010 0000 | 2 5 | tjue | 40 | 32 |
0100 0000 | 2 6 | 40 | 100 | 64 |
1000 0000 | 2 7 | 80 | 200 | 128 |