Hvad er et signeret heltal?

Bedste svar

Da dette bliver spurgt under emnet Software Engineering, kan vi måske diskutere repræsentation.

Otte bit af data (hvor en bit er en switch, der repræsenterer en 1 eller en 0) kan indeholde et usigneret heltal som følger:

0 = 00000000

1 = 00000001

2 = 00000010

4 = 00000100

8 = 00001000

16 = 00010000

256 = 10000000

511 = 11111111

Så vores 8 bit data kan indeholde et usigneret heltal så stort som 255 og så små som 0. Imidlertid kan virkelige applikationer kræve såvel negative som positive tal.

For at imødekomme underskrevne heltal er vi nødt til at opgive noget af vores lager. Der er flere skemaer, der gør dette.

Den enkleste ordning ville være at bruge den første bit til at repræsentere tegnet (sig nul er positiv og 1 er negativ). Dette har den morsomme konsekvens af at have en positiv og en negativ nulværdi.

+ 0 = 00000000

- 0 = 10000000

1 = 00000001

- 1 = 10000001

+ 2 = 00000010

- 2 = 10000010

+ 64 = 01000000

- 64 = 11000000

+127 = 01111111

Dette giver os mulighed for at gemme numre fra -127 til +127, hvilket er 255 tal (inklusive 0).

En anden måde at gøre dette på er ved at bruge det, der kaldes ones-complement opbevaring. Til dette er det negative tal den modsatte bitsekvens til det positive tal.

For eksempel:

0 = 00000000

0 = 11111111

2 = 00000010

- 2 = 11111101

Aritmetik med negative tal giver os mulighed for at tilføje de to tal. For eksempel bliver 2 + -2

+ 2 = 00000010

-2 = 11111101

--------------

= 11111111

som vi tidligere så var nul. Så det område, vi kan gemme i denne repræsentation med 8 bits, er heltalene mellem -127 og +127 eller 255 tal (da vi inkluderer nul som et enkelt tal).

Da det negative på nul er nul , der er stadig to repræsentationer af nul. Det er lidt spildende, så for at komme omkring dette bruges to-komplement . Det tager det ene-komplement negative tal og tilføjer et. I denne repræsentation

0 = 00000000

2 = 00000010

- 2 = 11111110

- 1 = 11111111

1 = 00000001

-128 = 10000000

127 = 01111111

-127 = 10000001

Så det område, vi kan gemme i denne repræsentation med 8 bits, er heltalene mellem -128 og +127 eller 256 numre i alt. Brug af denne ordning giver os mulighed for mere effektivt at bruge alle kombinationerne, hvilket kan være meget vigtigt, hvis vi ønsker at udnytte de ressourcer, der repræsenterer så grundlæggende ting som signerede heltal, bedst muligt.

Der er andre former for underskrevet heltalrepræsentationer, der kan ses på Repræsentationer med underskrevet nummer – Wikipedia .

Svar

Først, ingen løsning med nogen nummer lig med nul.

Hvis de begge er nul, er de to sider udefineret. (Du kan kalde det en løsning, hvis du vil – jeg vil ikke.)

Hvis den ene er nul og den anden er positiv, er den ene side nul og den anden er den ene.

Hvis den ene er nul, og den anden er negativ, er den ene side den ene, og den anden er udefineret.

Når man kun betragter positive heltal, er det klart, at a = b fungerer.

For andre løsninger skal du tage en naturlig log af begge sider (intet problem, da begge sider er positive), og vi får

b ln (a) == a ln (b)

Del begge sider med a og ln (a) (intet problem, vi overvejer kun positive heltal i øjeblikket), vi får

(b / a) == ln (b) / ln ( a) == ln (a * (b / a)) / ln (a) == [ln (a) + ln (b / a)] / ln (a) == 1 + ln (b / a) / ln (a)

Omarranger til

(b / a) -1 == ln (b / a) / ln (a)

Multiplicer begge sider ved ln (a) og divider begge sider med (b / a) -1 for at få

ln (a) == ln (b / a) [(b / a) -1]

Bemærk, at dette er division med nul, hvis a = b, men vi har allerede betragtet den sag. Så dette er kun gyldigt for a> 0, b> 0 og a b. Giv nu b / aa navn, kald det x = b / a.

Så vi har

ln (a) == ln (x) / (x-1)

Bemærk, at venstre side altid er positiv, medmindre a == 1, i hvilket tilfælde vi har brug for x == 1 (højre side kan defineres ved kontinuitet til at dække x = 1, og er svarende til 1 på dette tidspunkt). Men hvis x == 1, så er a = b, så afledningen af ​​denne ligning var ugyldig, og vi betragtede allerede alligevel a = b.

Så venstre side er positiv for a> 1, men det er OK, fordi højre side altid er positiv for positiv x.Men vi kan tænke på tilfældene ln (a) 1 separat. (ln (a) = 1 forekommer ikke for heltal værdier af a.)

For ln (a) har vi

ln (x) / (x-1 ) .

Hvis x> 1 er tælleren og nævneren positive, så

ln (x) -1, hvilket altid er tilfældet. Men hvis x , så er tælleren og nævneren negativ, så

ln (x)> x-1

Dette er aldrig tilfældet for logaritmefunktionen. Så hvis ln (a) 1. (Det er ikke nødvendigt at overveje x = 1, da vi allerede har dækket a = b.)

Hvad hvis ln (a)> 1? Derefter

ln (x) / (x-1)> 1

Hvis x> 1, så er tæller og nævner positive, så

ln ( x)> x-1

Dette er aldrig tilfældet. Hvis x , så er tælleren og nævneren negativ, så

ln (x) -1

Dette er altid tilfældet. Så hvis ln (a)> 1, har vi brug for x .

Så for positive heltal med en b har vi to tilfælde at overveje. Den ene er

ln (a) 1

og den anden er

ln (a)> 1 og x

Så lad os tænke over dette. Der er kun en a> 1 (vi har allerede betragtet a = 1) sådan at ln (a) , og det er a = 2. Derefter gives det tilsvarende x af

ln (2) == ln (x) / (x-1)

Et veluddannet gæt (og et af de andre svar har allerede dette opløsning) er x = 2. Men x = b / a og a = 2, så hvis x = 2, så er a = 4. Bemærk, at der ikke kan være en løsning til nogen anden værdi af x, da ln (x) / (x-1) er en strengt faldende funktion for x> 0.

Den anden sag er ln (a) > 1, men i dette tilfælde har vi x . Det betyder b / a eller b 1 (sand for ethvert heltal a> 2), så er a det større heltal, og b er det mindre. Men kan ln (b)> 1? I så fald skal du bare skifte a og b, dette skal også være en løsning på grund af symmetrien. Derefter er ln (a)> 1, hvilket betyder x 1 og ln (b)> 1. ln (b) = 1 svarer ikke til et heltal, så hvis ln (a)> 1, skal vi have ln (b) 1 med ln (b) er 2.

Så hvis der er en positiv heltalsløsning, er de to værdier a og b de samme, eller en af ​​dem er 2 og den anden er 4.

Der er ingen løsninger, der involverer a = 0 eller b = 0, medmindre du vil kalde a = b = 0 en løsning med den begrundelse, at udefineret er lig med udefineret, men Jeg ønsker ikke at få min matematiklicens taget væk.

Kunne vi have negative løsninger. Antag, at a 0 (vi ved, at vi ikke kan have b = 0), så er a ^ b et heltal, men b ^ a er kun et heltal, hvis a = -1. Men så er a ^ b -1, hvis b er ulige, og +1, hvis b er lige. b ^ a er positiv, så vi kan ikke have a = -1 og ulige b. Men hvis b er jævn, er a ^ b 1, og b ^ a er ikke lig med en. Så vi kan ikke have en 0. Af samme grund kan vi ikke have et> 0 og b .

Kan vi have et og b ? I så fald er a ^ b positiv, hvis b er jævn, og negativ, hvis b er ulige. Tilsvarende er b ^ a positiv, hvis a er jævn, og negativ, hvis a er ulige. Så for at de to skal være ens, har vi brug for både a og b for at være ulige, eller begge a og b skal være lige.

Antag at de er ulige. Startende med

a ^ b == b ^ a

Vi ganger begge sider med negativ og omarrangerer lidt og får

(-a) ^ b == (-b) ^ a

Hvis vi tager hinanden fra begge sider, har vi

(-a) ^ (- b) == (-b) ^ (- a)

Men hvis a og b 0 og -b> 0, og vi har allerede bestemt, at de eneste positive løsninger til -a og -b med begge ulige er når -a = -b, eller a = b. Så hvis a og b hver er det samme ulige ulige heltal, gælder lighed. Hvis den ene er et negativt ulige heltal, men et b, så er det ikke en løsning.

Hvad hvis a og b er negative, endda heltal? Derefter får vi

(-a) ^ b == (-b) ^ a

uden at gange begge sider med -1. Under gensidighed fra begge sider har vi

(-a) ^ (- b) == (-b) ^ (- a)

Vi kender allerede de løsninger, hvor -a > 0 og -b> 0 og begge er endda positive heltal; enten -a = -b eller -a = 2 og -b = 4 eller -a = 4 og -b = 2.

Dette dækker alle sager. Så den komplette liste over heltalsløsninger er

a og b er det samme positive eller negative heltal (men ikke nul)

a = 2 og b = 4

a = 4 og b = 2

a = -2 og b = -4

a = -4 og b = -2

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *