Beräkning av ström för ström och spänning
Som du vet, bör elspänning ha sin egen åtgärd, vilket ursprungligen motsvarar det värde som ...
Huvudartikeln: Disjunktiv normal form
Enkel konjunktion eller konjunktioner kallas konjunktionen för en viss ändlig uppsättning variabler eller deras negationer, och varje variabel uppstår inte mer än en gång. Disjunktiv normal form eller disjunktiva normalform kallas disjunction of simple conjunctions. Elementär konjunktion
högerom varje variabel ingår i det inte mer än en gång (inklusive negation);
totaltom varje variabel (eller dess negation) går in exakt 1 gång
monotonom det inte innehåller negativ av variabler.
Till exempel - är DNF.
Perfekt disjunktiv normal form eller PDNF i förhållande till vissa givna ändliga uppsättningar av variabler kallas en sådan DNF, där varje variabel innehåller alla variabler av den givna uppsättningen, dessutom i samma ordning. Till exempel :.
Det är lätt att verifiera att en viss DNF motsvarar varje Boolean funktion, och till och med DNFN till en annan funktion än den identiska nollpunkten. För detta räcker det att hitta alla de boolesiska vektorerna, på vilka dess värde är 1 i sannoliktabellen för denna funktion, och för varje sådan vektorkonstruktion en konjunktion Där. Disjunctionen av dessa conjunctions är PDNF av den ursprungliga funktionen, eftersom på alla boolska vektorer sammanfaller dess värden med värdena för den ursprungliga funktionen. Till exempel, för implikation, är resultatet att du kan förenkla upp till.
Huvudartikeln: Konjunktiv normal form
Konjunktiv normal form1 (CNF) bestäms duellt för DNF. Enkel disjunktion eller en klausul Disjunktionen av en eller flera variabler eller deras negationer kallas, och varje variabel går inte in mer än en gång. CNF är en sammanslutning av enkla disjunktioner.
Perfekt konjunktiv normal form (SKNF), med avseende på en viss bestämd uppsättning variabler, kallas en sådan CNF, där alla variabler av en given uppsättning ingår i varje disjunktion och i samma ordning. Eftersom (C) CNF och (C) DNF är ömsesidigt dubbla, upprepar egenskaperna (C) av CNF alla egenskaper hos (C) DNF, i stort sett "exakt motsatt".
En CNF kan konverteras till dess ekvivalenta DNF genom att öppna fästena enligt regeln:
som uttrycker fördelningen av en konjunktion med avseende på disjunktion. Efter det är det nödvändigt att ta bort upprepade variabler eller deras negationer i varje konjunktion, och också för att avstå från disjunktionen alla konjunktioner där variabeln uppträder tillsammans med dess negativa. I det här fallet kommer resultatet inte nödvändigtvis att vara PDNF, även om den ursprungliga CNF var CNF. På samma sätt kan du alltid gå från DNF till CNF. För att göra detta, använd regeln
uttrycka fördelning av disjunktion med avseende på samband. Resultatet måste omvandlas på det sätt som beskrivs ovan, ersätta ordet "conjunction" med "disjunction" och vice versa.
16 Lagar om omvandling av logiska uttryck: enparelement, negationer.
I logikens algebra finns lagar som skrivs i form av relationer. Logiska lagar tillåter ekvivalenta (ekvivalenta) omvandlingar av logiska uttryck. Transformationer kallas likvärdiga om de sanna värdena för originalen och erhållna efter transformationen av den logiska funktionen är desamma för alla värden av de logiska variablerna som finns i dem.
För enkelhet presenterar vi grundlagen i algebraens logik för två logiska variabler. ENoch V.Dessa lagar gäller för andra logiska variabler.
1. Riktlinjerna mot motsägelse:
2. Lag av den uteslutna mitten:
3. Lagen om dubbel negation:
4. Morgan lagar:
5. Repetitionens lagar: A & A = A; A v A = A; B & B = B; B v B = B.
6. Absorptionslagar: EN∨ (A & B) = A; A & (A∨ B) = A.
7. Lagarna för uteslutning av konstanter: EN∨ 1 = 1; EN∨ 0 = A; A & 1 = A; A & O = 0; B∨ 1 = 1; B∨ 0 = B; B & 1 = B; B & O = 0.
8. Limningslagen:
9. Överenskommelsens lag: (A⇔ B) = (B⇔ A).
För logiska variabler är de allmänna matematiska lagarna också giltiga. För enkelhet ger vi de allmänna matematiska lagarna för tre logiska variabler. A, B och C:
1. Kommutativ lag: A & B = B & A; EN∨ B = b∨ A.
2. Associativ lag: A & (B & C) = (A & B) & C; EN∨ (B∨ C) = (A∨ B)∨ C.
3. Distributionsrätt: A & (B∨ C) = (A & B)∨ (A & C).
Som redan noterat kan vi med hjälp av lagarna i algebraens algebra producera ekvivalenta omvandlingar av logiska uttryck för att förenkla dem. I algebra av logik fastställs följande regler (prioriteringar) för att utföra logiska operationer baserat på överenskommelsen: Operationer utförs först inom parentes, sedan i följande ordning: inversion (negation), konjunktion (&), disjunction (v), implication (⇒), ekvivalent (⇔)
Utför en omvandling, till exempel en logisk funktion
tillämpa tillämpliga lagar om algebra av logik.
17 Lag om transformation av logiska uttryck: kombinationslagar.
Lagarna med formell logik
De enklaste och nödvändiga sanna kopplingarna mellan tankar uttrycks i de grundläggande lagarna av formell logik. Sådana är identitetslagar, icke-motsägelse, utesluten tredje, tillräcklig anledning.
Dessa lagar är grundläggande eftersom de i logik spelar en särskilt viktig roll, är de vanligaste. De tillåter oss att förenkla logiska uttryck och bygga slutsatser och bevis. De tre första av de ovan nämnda lagarna identifierades och formulerades av Aristoteles, och lagen med tillräcklig anledning - G. Leibniz.
Identitetsloven: I ett visst resonemang måste varje koncept och dom vara identiskt med sig själv.
Lagen om icke-motsägelse: det är omöjligt att samma är samtidigt och inte är inneboende i samma i samma relation. Det är det omöjligt att säga och förneka något samtidigt.
Den uteslutna mittens lag: av två motsägelsefulla domar, en är sant, den andra är falsk, och den tredje ges inte.
Lagen av tillräcklig anledning: varje sann tanke måste vara tillräckligt motiverad.
Den sista lagen säger att beviset på någonting innebära att man förklarar exakt och bara sanna tankar. Falska tankar kan inte bevisas. Det finns ett bra latinska ordspråk: "Att err är karakteristisk för varje person, men att insistera på ett fel är karakteristisk bara för en dåre." Formeln i denna lag är inte, eftersom den bara har en meningsfull karaktär. Som argument för att bekräfta den sanna tanken kan sanna domar, faktummaterial, statistik, vetenskapslagar, axiomer, beprövade teorier användas.
Lagen om algebra av meningar
Algebra av uttalanden (algebra av logik) är en gren av matematisk logik som studerar logiska operationer på uttalanden och regler för att omvandla komplexa uttalanden.
Vid lösa många logiska problem är det ofta nödvändigt att förenkla formlerna erhållna genom formalisering av deras tillstånd. Förenkling av formler i algebra med uttalanden görs på grundval av ekvivalenta omvandlingar baserade på de grundläggande logiska lagarna.
Lagar om algebra av propositioner (algebra av logik) är tautologier.
Ibland kallas dessa lagar teorier.
I algebra av uttalanden uttrycks logiska lagar som likvärdighet av ekvivalenta formler. Bland lagarna sticker ut sådana som innehåller en variabel.
De fyra första lagarna nedan är de grundläggande lagarna för algebra av uttalanden.
Identitetslagen
Varje koncept och dom är identiskt med sig själv.
Identitetsloven innebär att det i processen av resonemang är omöjligt att ersätta en tanke för ett annat, ett koncept för en annan. Om denna lag bryts är det möjligt att logiska fel uppstår.
Till exempel resonemang Rättvis säger de att språket kommer till Kiev, och igår köpte jag en rökt tunga, så nu kan jag säkert gå till Kievfel, eftersom det första och andra ordet "språk" betecknar olika begrepp.
I argumentet: Förflyttning för evigt. Att gå till skolan är en rörelse. Därför går i skolan för alltidordet "rörelse" används i två olika sinnen (den första - i filosofisk mening - som materiens attribut, den andra - i vanligt bemärkelse - som en handling för rörelse i rymden), vilket leder till en falsk slutsats.
Lagen om icke-motsägelse:
Domen och dess negation kan inte vara sant samtidigt. Det är, om uttalandet EN- Sant, hans förnekelse inte enmåste vara falsk (och vice versa). Då kommer deras arbete alltid att vara falskt.
18 Minimera den analytiska inspelningen av logiska funktioner: Carnot-kartmetoden.
Karno Map - ett grafiskt sätt att minimera byte (booleska) funktioner, vilket ger relativ enkelhet att arbeta med stora uttryck och eliminera potentiella raser.
En ytterligare kod med ett negativt tal kan erhållas genom att invertera modulen för ett binärt tal (första tillägget) och lägga till en till inversionen (andra tillägget) eller subtrahera numret från noll.
Tilläggskoden (tillägg till 2) av ett binärt tal erhålls genom att lägga till 1 till minst signifikanta siffran för dess tillägg till 1.
Binärt 8-bitars nummer med ett tecken I tilläggskoden kan representera ett heltal i intervallet -128 till +127. Om den ledande siffran är noll, är det största heltalet som kan skrivas i de återstående 7 siffrorna 2 7 - 1 (\\ displaystyle 2 ^ (7) -1)det är 127.
decimal idé |
Binär representation (8 bitar) | ||
---|---|---|---|
rakt | avkastning | ytterligare | |
127 | 01111111 | 01111111 | 01111111 |
1 | 00000001 | 00000001 | 00000001 |
0 | 00000000 | 00000000 | 00000000 |
-0 | 10000000 | 11111111 | --- |
-1 | 10000001 | 11111110 | 11111111 |
-2 | 10000010 | 11111101 | 11111110 |
-3 | 10000011 | 11111100 | 11111101 |
-4 | 10000100 | 11111011 | 11111100 |
-5 | 10000101 | 11111010 | 11111011 |
-6 | 10000110 | 11111001 | 11111010 |
-7 | 10000111 | 11111000 | 11111001 |
-8 | 10001000 | 11110111 | 11111000 |
-9 | 10001001 | 11110110 | 11110111 |
-10 | 10001010 | 11110101 | 11110110 |
-11 | 10001011 | 11110100 | 11110101 |
-127 | 11111111 | 10000000 | 10000001 |
-128 | --- | --- | 10000000 |
Samma princip kan också användas i decimaltalsrepresentation av datorn: för varje siffra ersätts siffra X med 9 - X och det resulterande numret läggs till 1. När man exempelvis använder fyrsiffriga nummer -0081, ersätts den med 9919 (9919 + 0081 = 0000, femte siffra kastas ut).
När man tillämpar samma idé på det vanliga 10-bitarssystemet, kommer det att visa sig (till exempel för en hypotetisk processor med ett 10-bitars nummersystem):
10: e siffran ("normal" inmatning) |
10: e siffran ytterligare kod |
---|---|
... | ... |
13 | 0013 |
12 | 0012 |
11 | 0011 |
10 | 0010 |
9 | 0009 |
8 | 0008 |
... | ... |
2 | 0002 |
1 | 0001 |
0 | 0000 |
-1 | 9999 |
-2 | 9998 |
-3 | 9997 |
-4 | 9996 |
... | ... |
-9 | 9991 |
-10 | 9990 |
-11 | 9989 |
-12 | 9988 |
... | ... |
Omvandling av ett nummer från en direkt kod till en ytterligare en utförs enligt följande algoritm.
Ett exempel. Vi omvandlar det negativa talet -5 som skrivs i direktkoden till en extra. Den direkta koden för numret -5 tog modulo:
omvänd kod:
Lägg till resultatet 1
Låt oss lägga till ett tecken en siffra till vänster.
För den inverse transformen används samma algoritm. nämligen:
Vi vrider in alla siffror i numret, vilket ger en omvänd kod:
Lägg till resultatet 1
Och kolla, lägg till med extra kod
0101 + 1011 = 10000, den femte siffran kastas.
I systemet p-adiska tal ändrar tecknet på numret genom att konvertera numret till dess extra kod. Till exempel, om ett 5-talssiffran används, är siffran motsatsen till 1000 ... (1) 4444 .... (-1).
Om a< 0 then a := ((not a ) or 128 ) + 1 ;
Int konvertera (int a) (om (a< 0 ) a = ( ~- a | 128 ) + 1 ; return a ; }
För att bestämma tecknet på numret i binär kod används 0 och 1. Med en noll är tecknet "+" kodat. Enheten är kodad av tecknet "-".
För att representera positiva och negativa tal i databehandling används DIRECT, REVERSE och ADDITIONAL-koder.
Positiva tal i framåt, omvänd och ytterligare koder visas på samma sätt - binära koder med siffran 0 i teckenbiten. Till exempel:
Negativa siffror i direkt, omvänd och extra koder har en annan bild.
1. Direkt kod. Siffran 1 placeras i teckensiffran och den binära koden av dess absoluta värde placeras i siffrorna i den digitala delen av numret. Till exempel:
2. Omvänd kod. Det visar sig genom att invertera alla siffror i den binära koden för det absoluta värdet av ett tal, inklusive teckensiffran: nollor ersätts av en och nollor. Till exempel:
3. Ytterligare kod. Det visar sig bildandet av returkoden med efterföljande tillägg av en till sin yngre kategori. Till exempel:
Vanligtvis omvandlas negativa decimaltal automatiskt till en omvänd eller ytterligare binär kod när de skrivs in i maskinen och lagras, flyttas och är inblandade i operationer i den här formen. När man tar bort sådana nummer från bilen, omvänt omvandling till negativa decimaltal.
exempel: Ange numret +7, -12, -15, -16 i direkta, omvända och ytterligare koder.
När man översätter från omvänden i rak kod händer nummer inversion.
När man översätter från tillägg till direkt kod är 1) inversion av siffror i siffror, 2)+1 läggs till till den låga ordningen av det inverterade numret.
Aritmetiska transaktioner på tecknade nummer
I de flesta datorer används inte subtraktionsoperationen. I stället reduceras och subtraheras tillägget av invers- eller extrakoder. Detta gör att du kan förenkla designen av ALU betydligt.
Lägga till omvända koder . Här, när du lägger till nummer A och B, finns det fyra huvud och två speciella fall:
Om resultatet erhålls med ett minustecken (med "1"), så blir resultatet är nödvändigt konvertera till direkt kod !!!
1. A och B är positiva. Vid summeringen läggs alla siffror in, inklusive teckenets siffra. Eftersom teckensiffrorna i de positiva termerna är noll är siffran i summanumman också noll. Till exempel:
Fick det rätta resultatet.
2. A är positiv, B är negativ och absolut i storlek större än A. | A |< |B|
Till exempel:
Om resultatet erhålls med ett minustecken med en "1", måste resultatet omvandlas till en direkt kod !!!
Det korrekta resultatet erhålls i omvänd kod. När man översätter till en direkt kod, är bitarna i den digitala delen av resultatet inverterade: 1 0000111 = -7 10.
3. A är positiv, B är negativ och är mindre i absolutvärde än A. | A | \u003e | B |
Till exempel:
Datorn korrigerar det initialt erhållna felaktiga resultatet (6 istället för 7) enhet överföring från teckenrankningen till lågordningsbeloppet.
4. A och B är negativa. Till exempel:
Datorns initiala felaktiga resultat (den inverterade koden på numret -11 10 istället för den inversa koden på numret -10 10) korrigeras genom att överföra enheten från teckenbiten till summan av siffraens lägre siffra. När man översätter resultatet till en direkt kod, är bitarna i den digitala delen av numret inverterade: 1 0001010 = -10 10.
När man lägger till kan det uppstå en situation när de övre bitarna i resultatet av operationen inte passar i det minnesområde som är tilldelat för det. Denna situation heter överflöde av siffror med nummerformat. Särskilda verktyg används för att upptäcka överflöde och att meddela om ett fel i datorn. Nedan finns två möjliga översvämningsfall.
5. A och B är positiva, summan av A + B är större än eller lika med 2 n-1 , där n är antalet siffror i talformatet (för ett enkelbyteformat, n = 8, 2 n-1 = 27 = 128). Överflödesalternativ.
Till exempel:
Sju siffror i den digitala delen av talformatet inte tillräckligt för att tillgodose en åttesiffrig summa (162 10 = 10100010 2) därför den höga delen av summan är i teckenbiten. Detta orsakar felmatchning av summanumret och villkoren i villkorenatt är bevis på bitflöde.
Principerna för binär kodning ingår i principerna för drift av datorer: all data representeras som binära nummer kodade på något sätt. Koder med binära siffror är nödvändiga för att kunna utföra logiska och aritmetiska operationer på data.
I artikeln "Antal system" betraktades endast positiva siffror. När man skriver signerade binära nummer i sitt format är det nödvändigt att ange två fält: ett fält som definierar tecknet på ett tal och ett fält som karaktäriserar modulen för ett tal. En särskild teckenbit (binär bit) är reserverad för tecknet på numret. De återstående siffrorna bestämmer modulens modul. Teckenbiten är tilldelad till vänster om modulens modul, med "+" tecknet som motsvarar teckensbitens nollvärde och "-" tecknet - den ena.
I historien om utvecklingen av datorer användes tre huvudalternativ för att representera teckennummer:
I alla tre koderna ser positiva tal ut på samma sätt. Skillnader i form av att skriva negativa tal i omvänd och extra koder gäller bara hur modulen representerar ett tal, och kodningsmetoden och platsen för teckenbiten förblir oförändrad.
I dbestår numret av signalkoden och modulen för numret, som båda behandlas separat.
Exempel på direktkod för korrekta fraktioner:
Exempel på direktkod för heltal:
Representationen av siffror i den direkta koden har en signifikant nackdel - den formella summeringen av siffror med olika tecken ger ett felaktigt resultat. Ett exempel är tillägget av två siffror och. I direktkoden har dessa siffror formen: och. Uppenbarligen bör resultatet vara -2, vilket i direktkoden kan skrivas som 1.010. Samtidigt, med direkttillägg får vi
det vill säga ett värde som skiljer sig avsevärt från det förväntade.
Förfarandet för korrekt tillägg av siffror i direktkoden existerar, men det är mycket besvärligt. Den direkta koden har en annan nackdel - noll har två olika representationer, nämligen, och det matematiskt inte meningsfullt.
På grund av de noterade bristerna i datorer används inte en direkt kod, utan omvänd och extra koder.
I dessa kodningssystem förblir placeringen av teckenbiten och kodningsmetoden densamma som i direktkodningen. Signbiten betraktas emellertid inte längre som en separat, men anses vara en integrerad del av numret, liknande siffrorna i nummemodulen och tillsammans med dem.
För negativa binära tal, är förfarandet för att få returkoden på följande sätt: i teckenbiten är skriven av en och utsläpp direkt i digitala enheter kod ersätts av nollor och nollor enheter.
Exempel på returkoden för korrekta fraktioner:
.
Exempel på omvänd kod för heltal:
.
Som ni kan se, de positiva siffrorna i både framåt och bakåt koder ser likadana ut.
Även returkoden och löser problemet med addition och subtraktion av tal med olika tecken, det har sina nackdelar. För det första, är summan processen en två nummer, vilket ökar exekveringstid av operationen. För det andra, som i direkt kod omvänd - två representationer av noll och.
Ytterligare kod negativa binära tal bildas genom följande regel: digitala siffror direkt enhet ersättas med nollor kod och nollor - enheter, och sedan lägga till en LSB.
Tänk exempelvis på numret Xvilken i direktkoden har formen:
Då kan omvänd kod skrivas som
.
För ytterligare kod, lägg till 1 till den lägre ordningen av omvänd kod:
.
Exempel på tilläggskod för korrekta fraktioner:
.
Exempel på extra kod för heltal:
.
Positiva siffror i tilläggsnummer skrivs på samma sätt som i live. I representationen av tal i två komplement är bara en form av marken: 0,0 ... 00, med noll anses vara ett positivt tal, som dess tecken bit är 0.
I de flesta datorer representeras negativa tal i ytterligare kod.
Tillsättning och subtraktion av siffror i omvänd och extra koder
Subtraktion görs tillägg av siffror, varav med ett minustecken.
När du utför algebraiska tillägg av en teckenbit och siffror modul betraktas som en helhet och behandlas tillsammans. Överföring från äldre (tecken) och den motsatta urladdning i de ytterligare koder anses annorlunda. I fallet med den inversa koden överföringsenheten från teckenbiten sätts till LSB summa. Genom att använda tilläggsnummer överföringsenheten från teckenbiten kasseras.
Exempel 1 Lägg till nummer och
När vi använder en omvänd kod får vi:
När vi använder den extra koden får vi:
Om teckensiffran i resultatet är noll betyder det att ett positivt tal tas emot, vilket ser ut som det är i direktkoden. En enhet i teckenbiten innebär att resultatet är negativt och dess inmatning motsvarar representationen i koden där operationen utfördes.
Uppsats om ämnet:
Ytterligare kod (Eng. två komplementibland tvåor-komplement) - Det vanligaste sättet att representera negativa heltal i datorer. Det låter dig ersätta subtraktionsoperationen med additionoperationen och göra tilläggs- och subtraktionsoperationerna samma för signerade och osignerade nummer, vilket förenklar datarkitekturen. En ytterligare kod med ett negativt tal kan erhållas genom att invertera modulen för det binära numret (första tillägget) och lägga till en till inversionen (andra tillägget). Eller genom att subtrahera numret från noll.
Tilläggskoden (tillägg till 2) av ett binärt tal erhålls genom att lägga till 1 till minst signifikanta siffran för dess tillägg till 1.
Tillägg till 2 binärt tal definieras som det värde som erhålls genom att subtrahera numret från största delen av två (från 2 N för N-bit-tillägget till 2).
När du skriver ett nummer i tilläggskoden är den höga ordningen betydande. Om dess värde är 0, innehåller de återstående siffrorna ett positivt binärt tal som matchar direktkoden. Om teckenbiten är 1, innehåller de återstående siffrorna ett negativt binärt tal som omvandlas till en extra kod. För att få ett värde som är motsatt i tecken, inverteras alla siffror, inklusive tecknet, och en läggs till i resultatet.
Binärt 8-bitars nummer med ett tecken I tilläggskoden kan representera ett heltal i intervallet -128 till +127. Om högordningsbiten är noll, kan det största heltalet som kan skrivas i de återstående 7 siffrorna vara 2 7 - 1, vilket är 127.
decimal idé |
Binär representationskod (8 bitar) | |
---|---|---|
rakt | ytterligare | |
127 | 01111111 | 01111111 |
1 | 00000001 | 00000001 |
0 | 00000000 | 00000000 |
-0 | 10000000 | -------- |
-1 | 10000001 | 11111111 |
-2 | 10000010 | 11111110 |
-3 | 10000011 | 11111101 |
-4 | 10000100 | 11111100 |
-5 | 10000101 | 11111011 |
-6 | 10000110 | 11111010 |
-7 | 10000111 | 11111001 |
-8 | 10001000 | 11111000 |
-9 | 10001001 | 11110111 |
-10 | 10001010 | 11110110 |
-11 | 10001011 | 11110101 |
-127 | 11111111 | 10000001 |
-128 | -------- | 10000000 |
När du tillämpar samma idé på det vanliga decimalsystemet kommer det att visa sig (till exempel för en hypotetisk processor som använder ett decimalsystem):
10-årigt siffersystem ("normal" inmatning) |
10-årigt siffersystem ytterligare kod |
---|---|
... | ... |
13 | 0013 |
12 | 0012 |
11 | 0011 |
10 | 0010 |
9 | 0009 |
8 | 0008 |
... | ... |
2 | 0002 |
1 | 0001 |
0 | 0000 |
-1 | 9999 |
-2 | 9998 |
-3 | 9997 |
-4 | 9996 |
... | ... |
-9 | 9991 |
-10 | 9990 |
-11 | 9989 |
-12 | 9988 |
... | ... |
Omvandling av ett nummer från en direkt kod till en ytterligare en utförs enligt följande algoritm.
Ett exempel. Vi omvandlar det negativa talet -5 som skrivs i direktkoden till en extra. Den direkta koden för numret -5 tog modulo:
Lägg till resultatet 1
Låt oss lägga till ett tecken en siffra till vänster.
För den inverse transformen används samma algoritm. nämligen:
Vi vrider in alla siffror i numret, vilket ger en omvänd kod:
Lägg till till resultat 1 och kolla, lägg till med ytterligare kod
0101 + 1011 = 10000, den femte siffran kastas.
Samma princip kan också användas i decimaltalsrepresentation av datorn: för varje siffra ersätts siffra X med 9 - X och det resulterande numret läggs till 1. När man exempelvis använder fyrsiffriga nummer -0081, ersätts den med 9919 (9919 + 0081 = 0000, femte siffra kastas ut).
Om a<0 then a:= ((not a) or 128 ) + 1 ;
Om (a< 0 ) a = ( (~a) | 128 ) + 1 ;
Om data läses från en fil eller ett minnesområde där det lagras i binär ytterligare kod (till exempel en WAVE-fil) kan det vara nödvändigt att konvertera byte. Om data lagras i 8 bitar är det nödvändigt att värdena 128-255 är negativa.
Byte b1 = 254; // 11111110 (binär) byte b2 = 121; // 01111001 (binär) byte c = 1<< (sizeof (byte ) * 8 - 1 ) ; // 2 höjs till kraften av 7. Resultat: 10.000.000 (binärt) byte b1Conversion = (c ^ b1) - c; // Resultat: -2. Och i själva verket den binära tilläggskoden. byte b2Conversion = (c ^ b2) - c; // Resultatet förblir 121, eftersom teckenbiten är noll.