Positionsnummersystem ( positionell, lokal numrering ) är ett talsystem där värdet av varje numeriskt tecken ( siffra ) i en nummerinmatning beror på dess position ( siffra ) i förhållande till decimalavgränsaren . Positionssystem, i jämförelse med andra, gör det möjligt att avsevärt förenkla algoritmerna för att utföra aritmetiska operationer och påskynda beräkningar. Deras skapande och distribution spelade en stor roll i utvecklingen av de exakta vetenskaperna - matematik , astronomi och fysik .
Talsystem i kulturen | |
---|---|
indo-arabiska | |
Arabiska tamilska burmesiska |
Khmer Lao Mongoliska Thai |
Öst asiat | |
kinesiska japanska Suzhou koreanska |
Vietnamesiska räknepinnar |
Alfabetisk | |
Abjadia Armeniska Aryabhata kyrilliska grekiska |
georgiska etiopiska judiska Akshara Sankhya |
Övrig | |
Babyloniska egyptiska etruskiska romerska Donau |
Attic Kipu Mayan Egeiska KPPU-symboler |
positionella | |
2 , 3 , 4 , 5 , 6 , 8 , 10 , 12 , 16 , 20 , 60 | |
Nega-positionell | |
symmetrisk | |
blandade system | |
Fibonacci | |
icke-positionell | |
Singular (unär) |
Historiskt sett tillskrivs den första uppfinningen av positionsnumrering baserad på den lokala betydelsen av siffror till sumererna och babylonierna . Oavsett de eurasiska civilisationerna uppfanns det vigesimala positionsnummersystemet av mayaindianerna . Under en senare period utvecklades en sådan numrering av hinduerna och fick ovärderliga konsekvenser i civilisationens historia . Dessa system inkluderar decimaltalsystemet , vars uppkomst är förknippat med att räkna på fingrarna . I det medeltida Europa dök den upp genom italienska köpmän, som i sin tur lånade den av araberna.
Positionsnummersystemet definieras av ett heltal , som kallas basen i talsystemet. Ett talsystem med bas kallas också -ary (i synnerhet binär , ternär , decimal , etc.).
Ett heltal utan tecken i det -ary talsystemet representeras som en finit linjär kombination av potenser av talet [1] :
, där är heltal, kallade siffror , som uppfyller olikhetenVarje grundelement i en sådan representation kallas en siffra ( position ), siffrornas anciennitet och deras motsvarande siffror bestäms av numret på siffran (positionen) (exponentens värde).
Med hjälp av positioner i det -ary talsystemet kan du skriva heltal i intervallet från till , d.v.s. alla olika nummer.
Om det inte finns några avvikelser (till exempel när alla siffror presenteras i form av unika skrivna tecken), skrivs numret som en sekvens av dess -ary-siffror, listade i fallande prioritetsordning för siffror från vänster till höger [1 ] :
I siffror som inte är noll , utelämnas vanligtvis inledande nollor.
Att skriva siffror i talsystem med bas upp till 36 inklusive arabiska siffror (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) och sedan bokstäverna i det latinska alfabetet (a , b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z). I det här fallet är a = 10, b = 11, etc., ibland x = 10.
När man arbetar med flera talsystem samtidigt, för att särskilja dem, indikeras systemets bas vanligtvis som en sänkning, som skrivs i decimalsystemet:
är talet 123 i decimalnotation ; - samma nummer i det oktala talsystemet ; - samma nummer, men i det binära systemet ; - samma nummer, men i decimaltalssystemet med binär kodning av decimalsiffror ( BCD ); - samma nummer, men i ett asymmetriskt ternärt talsystem ; - samma nummer, men i det symmetriska ternära talsystemet , betecknar tecknen "i", "7", "2" och "−" "−1", tecknen "1" och "+" betecknar "+1" .Inom vissa specialområden gäller särskilda regler för precisering av underlag. Till exempel, i programmering, betecknas det hexadecimala systemet med:
I vissa dialekter av C-språket, i analogi med "0x", används prefixet "0b" för att beteckna binära tal (notationen "0b" ingår inte i ANSI C- standarden ).
I ryska konton , för att skriva siffror i det decimala exponentiella positionsnummersystemet, används det unära decimalregistreringssystemet (representation) för decimalsiffror med en överflödig unär decimalsiffra "1111111111" = 10_ 10 för varje siffra.
Positionsnummersystemet har ett antal egenskaper:
Inom digital teknik implementeras basnummersystemet av register , bestående av uppsättningar av vippor , som var och en kan anta olika tillstånd som kodar siffrorna i ett nummer. Samtidigt är ekonomin i talsystemet av särskild vikt - förmågan att representera så många tal som möjligt med minsta möjliga totala antal tecken. [1] Om antalet utlösare är , då är det totala antalet tecken , respektive antalet siffror de representerar . Som en funktion av , når detta uttryck sitt maximum vid lika många e = 2,718281828… . [3] För heltalsvärden nås maxvärdet för . Det mest ekonomiska är alltså det ternära talsystemet (används i ternära datorer ), följt av det binära systemet (traditionellt används i de flesta vanliga datorer) och kvartärt.
Nummersystemets effektivitet är en viktig omständighet med tanke på dess användning i en dator. Därför, även om användningen av ett ternärt system istället för ett binärt i en dator medför vissa designsvårigheter (i det här fallet är det nödvändigt att använda element, som var och en kan vara i inte två, utan tre stabila tillstånd), detta system har redan använts [4] i vissa verkliga datorenheter. [ett]S. V. Fomin
En likvärdig beskrivning av talsystemets ekonomi kan erhållas med begreppet informationsentropi . Under villkoret att det är lika sannolikhet för utseendet av var och en av siffrorna i posten av numret, antar informationsentropin för posten för ett n -bitars tal i talsystemet med bas b ett värde (upp till en konstant koefficient ). Därför är inspelningstätheten (det vill säga mängden information per bit) för tal i talsystemet med bas b lika med , vilket också får ett maximalt värde vid b = e , och för heltalsvärden av b - vid b = 3.
Om ett heltal i -ärt talsystem är lika med
sedan för att konvertera till decimalsystemet, beräknar vi följande summa : [5]
eller som Horners diagram :
Till exempel:
Liknande åtgärder äger också rum för bråkdelen :
Obs ! Ibland när man översätter ett rationellt bråktal från ett decimalsystem med hjälp av sådana algoritmer kan en oändlig periodisk bråkdel erhållas: till exempel . För att hitta perioden måste du utföra de iterationer som beskrivs i första stycket, och förstå om samma bråkdel påträffas som för flera iterationer sedan [7] . (Reguljära bråk i olika talsystem skrivs nedan .)
ExempelLåt oss konvertera till binärt:
44 dividerat med 2. kvot 22, resterande 0 22 dividerat med 2. kvot 11, resterande 0 11 dividerat med 2. kvot 5, resterande 1 5 dividerat med 2. kvot 2, resterande 1 2 dividerat med 2. kvot 1, resterande 0 1 dividerat med 2. kvot 0, resterande 1Kvoten är noll - divisionen är över. Nu, när vi skriver alla rester nerifrån och upp, får vi numret
För bråkdelen ser algoritmen ut så här:
Multiplicera 0,625 med 2. Bråkdelen är 0,250. hela del 1. Multiplicera 0,250 med 2. Bråkdelen är 0,500. Heltalsdel 0. Multiplicera 0,500 med 2. Bråkdelen är 0,000. hela del 1.På det här sättet,
Det finns en förenklad algoritm för denna typ av operation. [åtta]
Hela delenFör oktal delar vi upp det översatta talet i ett antal siffror lika med potensen 2 (2 höjs till den potens som krävs för att få basen för det system som du vill översätta till (2³ \u003d 8), i detta fall 3, det vill säga triader). Låt oss omvandla triaderna enligt tabellen med triader:
000 - 0; 100-4; 001 - 1; 101-5; 010 - 2; 110-6; 011 - 3; 111-7.För hexadecimal delar vi det översatta numret i ett antal siffror lika med potensen 2 (2 höjs till den potens som krävs för att få basen för systemet som du vill översätta till (2 4 \u003d 16), i detta fall 4, det vill säga tetrads). Låt oss konvertera tetraderna enligt tabellen över tetraderna:
0000 - 0; 0100 - 4; 1000 - 8; 1100-C; 0001 - 1; 0101 - 5; 1001 - 9; 1101 - D; 0010 - 2; 0110 - 6; 1010 - A; 1110 - E; 0011 - 3; 0111 - 7; 1011 - B; 1111-F.Exempel:
konvertera 101100 2 oktal - 101 100 → 54 8 hexadecimal - 0010 1100 → 2C 16 BråkdelOmvandlingen av bråkdelen från det binära talsystemet till talsystemen med baserna 8 och 16 görs på exakt samma sätt som för talets heltalsdelar, med det enda undantaget att uppdelningen i oktaver och tetrader går till till höger om decimalkomma, de saknade siffrorna utfyllda med nollor till höger. Till exempel skulle talet 1100.011 2 som diskuterats ovan se ut som 14.3 8 eller C.6 16 .
För denna typ av operation finns det också en förenklad algoritm, det omvända till ovanstående algoritm.
För oktal omvandlar vi enligt tabellen till tripletter:
0 000 4 100 1001 5101 2010 6 110 3011 7111För hexadecimal omvandlar vi enligt tabellen till kvartetter:
0 0000 4 0100 8 1000 C 1100 1 0001 5 0101 9 1001 D 1101 2 0010 6 0110 A 1010 E 1110 3 0011 7 0111 B 1011 F 1111Exempel:
omvandla 54 8 → 101 100 2 2C 16 → 0010 1100 2Ett rationellt tal i det -ary talsystemet representeras som en linjär kombination (i allmänhet, oändlig) av talets potenser :
där - siffror i heltalsdelen (före avgränsaren ), - siffror i bråkdelen (efter avgränsaren), - antalet siffror i heltalsdelen.
Endast rationella tal som kan representeras i formen , där och är heltal, det vill säga de som, efter att ha multiplicerat med basen i ett ändligt antal iterationer, kan få ett heltal kan ha en ändlig notation i det -ary talsystemet :
var och är -ary poster, respektive , av kvoten och resten av division med .
Rationella tal som inte kan representeras i formen skrivs som periodiska bråk .
Symmetriska (balanserade, teckensiffriga ) bastalssystem skiljer sig genom att de använder tal inte från mängden utan från mängden där, grovt sett, alla tal ”reflekteras” relativt noll. För att talen ska vara heltal måste de vara udda. I symmetriska talsystem krävs ingen ytterligare notation för numrets tecken. [9] Dessutom är beräkningar i symmetriska system bekväma eftersom inga speciella avrundningsregler krävs - avrundning till närmaste heltal reduceras till att helt enkelt kassera extra bitar, vilket kraftigt minskar systematiska fel i beräkningar.
Det vanligaste är det symmetriska numeriska ternära talsystemet . Det används i ternär logik och implementerades tekniskt i Setun -datorn .
Det finns positionella system med negativa baser som kallas icke-positionella :
Ibland övervägs också positionsnummersystem med icke-heltalsbaser: rationell , irrationell , transcendental .
Exempel på sådana talsystem är:
Baser för positionsnummersystem kan också vara komplexa [11] [12] tal. Samtidigt tar talen i dem värden från någon ändlig uppsättning som uppfyller villkoren som gör att du kan utföra aritmetiska operationer direkt med representationerna av siffror i dessa talsystem.
I synnerhet bland positionsnummersystem med komplexa baser kan binära särskiljas, där endast två siffror 0 och 1 används.
ExempelDärefter kommer vi att skriva positionsnummersystemet i följande form , där är basen för talsystemet och A är uppsättningen siffror. Speciellt kan uppsättningen A se ut så här:
Exempel på talsystem med komplexa baser är (nedan j - imaginär enhet ):
Följande är baserna för de binära positionstalssystemen och representationerna av talen 2, −2 och −1 i dem:
De exponentiella talsystemen är ett specialfall av positionstalssystem med exponentiellt beroende . Istället för exponentiellt beroende kan det finnas andra beroenden. Till exempel hyperoperatorns positionsnummersystem
låter dig skriva större antal siffror med samma antal tecken.
![]() |
---|