Den binære system (fra latin binārĭus , “dobbelt”) er antall systemet ved hjelp av basen 2 . Sifrene i posisjonelt binært tall kalles ofte bit (fra det engelske binære sifferet , eller "binært siffer") . Litt kan ta to verdier, betegnet med konvensjon 0 og 1 .
Det binære systemet er nyttig for å representere driften av digital elektronikk som brukes i datamaskiner . Den brukes derfor av programmeringsspråk på lavt nivå .
Den vanligste binære system er matematisk basen to , slik at tallene skal representeres ved hjelp av sted- nummerering med bare to sifre: 0 og 1.
I denne typen koding representeres hvert tall unikt med en ordnet sekvens av sifre . Og hver posisjon m representerer en kraft ( m - 1) til basen . Hvis vi først begrenser oss til positive heltall , er disse kreftene i base ti : en (1), ti (representert av 10), hundre (ti ganger ti, representert med 100), tusen (ti ganger hundre, representert av 1000), ti tusen osv. I base to er disse kreftene: en (1), to (også representert med 10), fire (to ganger to, representert med 100), åtte (to ganger fire, representert ved 1000), seksten (to ganger åtte, representert innen 10000) osv.
Vi ser at betydningen av representasjoner 10, 100, 1000, etc. avhenger av basen som brukes: 10 er alltid lik basen, det vil si ti i base ti, men to i base to.
I base ti brukes ti sifre, fra null til ni; i base n bruker vi n sifre, fra null til n - 1; Derfor bruker vi to siffer “0” og “1” i base to.
Et tall som er uttrykt i base B med de fire sifrene 1101, kan analyseres:
, som gir :
1101 i base B = 10: | |||||
1101 i base B = 8: | |||||
1101 i base B = 2: |
De første tallene og sifrene i basen 10 er skrevet:
desimal | binær | bemerke |
---|---|---|
0 | 0 | null |
1 | 1 | un = basiseffekt null (gyldig for alle baser, så to og ti) |
2 | 10 | to = to til kraften til en (et null bak 1) |
3 | 11 | |
4 | 100 | fire = to til kraften til to (to nuller bak 1) |
5 | 101 | |
6 | 110 | |
7 | 111 | |
8 | 1000 | åtte = to til tre (tre nuller bak 1) |
9 | 1001 |
Vi gir hver bit en kraft på to, som denne sekvensen 1, 2, 4, 8, 16, 32, 64. For å oppnå tallet 7 legger vi til de tre første bitene; for å få 6, legger vi bare til litt med en vekt på 4 og litt med en vekt på 2.
Teknikkene til de fire grunnleggende operasjonene (addisjon, subtraksjon, multiplikasjon og divisjon) forblir nøyaktig de samme som i desimalnotasjon; de er bare drastisk forenklet fordi det bare er de to sifrene 0 og 1. For multiplikasjonen for eksempel, uansett basen, blir multiplikasjonen med 10 (dvs. av selve basen) gjort ved å legge til null til høyre.
De eneste endringene som forandrer på den ene siden formen til sekvensen av sifre som uttrykker resultatet (den teller bare nuller og en), på den annen side betydningen av denne sekvensen (10 betyr "to" og ikke "ti", 100 betyr "fire" og ikke "hundre" osv.).
Addisjon og subtraksjonVi går fra ett binært tall til det neste ved å legge til 1, som i desimal, uten å glemme lasterommene og bruke det vanlige bordet (men redusert til sitt enkleste uttrykk):
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 avec 1 retenue 0 - 0 = 0 0 - 1 = 1 avec 1 retenue 1 - 0 = 1 1 - 1 = 0Det kan sees at tilsetningen av to biter A og B gir A XOR B med en bæring lik A OG B.
Så:
11 + 1 ____ 100Detalj:
1 + 1 = 10 => on pose 0 et on retient 1 1 + 1(retenue) = 10 => on pose 0 et on retient 1 0 + 1(retenue) = 1 => on pose 1 devant 00Multipliser med to gjøres ved å flytte hvert siffer ett trinn mot venstre og sette inn et null på slutten.
For eksempel to ganger elleve:
Hele divisjonen med to gjøres ved å flytte hvert siffer ett trinn mot høyre, mens det høyre sifferet blir fjernet.
For eksempel elleve delt på to:
Binær aritmetikk (enklere binær beregning) brukes av de vanligste elektroniske systemene (kalkulatorer, datamaskiner osv.) Fordi de to sifrene 0 og 1 reflekteres der av spenningen eller passeringen av en strøm. For eksempel kan 0 representeres av lav tilstand (null spenning eller strøm) og 1 av høy tilstand (spenning som eksisterer, strøm som strømmer).
For å fullføre representasjonen av heltall er det nødvendig å kunne skrive negative heltall . To representasjoner eksisterer, det ene komplementet og det to komplementet.
Supplement til aDenne kodingen består i å invertere verdien av hver bit.
For eksempel for å få −7:
En mangel ved dette systemet er at null har to representasjoner: 0000 og 1111 ("+0" og "−0"). Den brukes ikke av nåværende datamaskiner, men ble brukt av eldre datamaskiner som Control Data 6600 . De to representasjonene av null kompliserer testkretsene.
Komplement for toDe to komplementene består i å utføre et komplement, og deretter legge til 1.
For eksempel for å oppnå −7:
Denne kodingen har fordelen av ikke å kreve spesiell differensiering av positive og negative tall, og spesielt unngår problemet med dobbel representasjon av null.
Her er et tillegg av −7 og +9 utført som et 4-bit to komplement:
-7 1001 +9 1001 __ ____ 2 (1) 0010 (on « ignore » la retenue)Med n bits tillater dette systemet å representere tallene mellom −2 n −1 og 2 n −1 - 1.
Basene 8 (oktal) og 16 (heksadesimal) er kraftbaser av base 2. Disse to basene blir ofte brukt i databehandling og av praktiske årsaker; disse basene er sterkt knyttet til base 2, og tallene skrevet i disse basene er mer "manipulerbare" (på grunn av kortere skriving) av menneskets intellekt. Å skrive tall i disse basene oppnås enkelt ved å gruppere sifre fra å skrive nummer til base 2.
Vi kunne lett utvide dette prinsippet til alle baser som er krefter på 2.
Til binærDet er tilstrekkelig å omdanne verdien av hvert av sifrene i deres binær form ved hjelp av et antall sifre som tilsvarer effekten av basen: 16 = 2 4 , 8 = 2 3 , så 4 sifre for den heksadesimale og 3 for den oktale:
|
|
Grå kode, også kalt reflektert binær, lar bare en bit endres av gangen når et tall økes eller reduseres av ett. Navnet på koden kommer fra den amerikanske ingeniøren Frank Gray , som arkiverte patent på denne koden i 1947.
For å direkte beregne gråkoden til et heltall fra forgjengeren, kan vi gå frem som følger:
For å forene datamaskinens binære logikk med den menneskelige logikken, kan man konvertere til binær, snarere enn tallene, hver av sifrene som komponerer dem i desimalposisjonsnotasjon. Hver av disse sifrene blir deretter kodet på 4 biter:
1994 = 0001 1001 1001 0100 1×1000 + 9×100 + 9×10 + 4×1Med n biter (n multiplum av 4) er det mulig å representere tallene mellom 0 og 10 n / 4 -1. Det vil si omtrent mellom 0 og 1,778 n -1. DCB er en overflødig kode, faktisk brukes ikke noen kombinasjoner (for eksempel 1111).
Denne representasjonen unngår ved konstruksjon alle de vanskelige avrundingsakkumuleringsproblemene som ville oppstå under manipulering av et stort antall som overstiger kretsløpet i heltallsregning og forpliktet til å ty til flottøren. Det er imidlertid mulig å manipulere tall med vilkårlig presisjon ved å bruke mer effektiv koding enn DCB.
Det er varianter av DCB-koding:
I informasjon teori , at entropien er av en informasjonskilde uttrykt i biter . Teorien i seg selv er likegyldig for representasjonen av mengdene den bruker.
Den klassiske logikken er en toverdig logikk: et forslag er enten sant eller usant. Det er derfor mulig å representere sannheten i en proposisjon med et binært tall. For eksempel kan vi modellere operasjonene til binær aritmetikk ved hjelp av boolsk algebra .
Den boolske algebra representerer et veldig spesielt tilfelle av bruk av sannsynligheter som bare involverer de eneste sannhetsverdiene 0 og 1. Se Cox-Jaynes teorem .
Binæren brukes i databehandling fordi den gjør det mulig å modellere driften av svitsjekomponentene som TTL eller CMOS . Tilstedeværelsen av en spenningsterskel over transistorer, som forsømmer den nøyaktige verdien av denne spenningen, vil representere 0 eller 1. For eksempel vil tallet 0 bli brukt til å betegne et fravær av spenning innen 0,5 V , og tallet 1 for å indikere dets tilstedeværelsen mer enn 0,5 V . Denne toleransemargen gjør det mulig å skyve hastighetene til mikroprosessorene til verdier som når flere gigahertz .
Innen datavitenskap gjør den binære representasjonen det mulig å tydelig manipulere biter : hvert binære siffer tilsvarer litt. Men siden den binære representasjonen krever bruk av mange sifre (selv for ganske små tall), fører det til betydelige lesbarhetsproblemer og dermed risiko for transkripsjonsfeil for programmerere. Andre representasjoner er derfor foretrukket : heksadesimal notasjon, som gjør det mulig å manipulere informasjon i pakker på 4 bits, er egnet for nesten alle nåværende mikroprosessorer som arbeider med ord på 8, 16, 32 eller 64 bits; sjeldnere, scorende oktal , populær tid for de første minidatamaskinene DEC til 12 eller 36 bits, som kan representere informasjon i pakker på 3 bits.