Vad är ett signerat heltal?

Bästa svaret

Eftersom detta ställs under ämnet Software Engineering kan vi kanske diskutera representation.

Åtta databitar (där en bit är en omkopplare som representerar en 1 eller en 0) kan innehålla ett osignerat heltal enligt följande:

0 = 00000000

1 = 00000001

2 = 00000010

4 = 00000100

8 = 00001000

16 = 00010000

256 = 10000000

511 = 11111111

Så våra 8 databitar kan innehålla ett osignerat heltal så stort som 255 och så små som 0. Emellertid kan verkliga applikationer kräva såväl negativa som positiva siffror.

För att rymma signerade heltal måste vi ge upp en del av vårt lagringsutrymme. Det finns flera scheman som gör detta.

Det enklaste schemat skulle vara att använda den första biten för att representera tecknet (säg att noll är positiv och 1 är negativ). Detta har den underhållande konsekvensen av att ha ett positivt och ett negativt nollvärde.

+ 0 = 00000000

- 0 = 10000000

1 = 00000001

- 1 = 10000001

+ 2 = 00000010

- 2 = 10000010

+ 64 = 01000000

- 64 = 11000000

+127 = 01111111

Detta gör att vi kan lagra nummer från -127 till +127 vilket är 255 siffror (inklusive 0).

Ett annat sätt att göra detta är att använda det som kallas ens-komplement lagring. För detta är det negativa talet motsatt bitsekvens till det positiva talet.

Till exempel:

0 = 00000000

0 = 11111111

2 = 00000010

- 2 = 11111101

Aritmetik med negativa tal tillåter oss att lägga till de två siffrorna. Till exempel blir 2 + -2

+ 2 = 00000010

-2 = 11111101

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

= 11111111

som vi tidigare sett var noll. Så intervallet vi kan lagra i denna representation med 8 bitar är heltal mellan -127 och +127, eller 255 tal (eftersom vi inkluderar noll som ett enda tal).

Eftersom det negativa av noll är noll , det finns fortfarande två representationer av noll. Det är lite slösaktigt, så för att komma runt detta används två-komplement . Det tar ett-komplement negativt tal och lägger till ett. I denna framställning

0 = 00000000

2 = 00000010

- 2 = 11111110

- 1 = 11111111

1 = 00000001

-128 = 10000000

127 = 01111111

-127 = 10000001

Så intervallet vi kan lagra i denna representation med åtta bitar är heltal mellan -128 och +127, eller 256 siffror totalt. Genom att använda detta schema kan vi använda alla kombinationer mer effektivt, vilket kan vara mycket viktigt om vi vill utnyttja de resurser som representerar sådana grundläggande saker som signerade heltal på bästa sätt.

Det finns andra formade av signerade heltalsrepresentationer som kan ses på Signerade nummerrepresentationer – Wikipedia .

Svar

Först, ingen lösning med varken nummer lika med noll.

Om de båda är noll är de två sidorna odefinierade. (Du kan kalla det en lösning om du vill – det gör jag inte.)

Om den ena är noll och den andra är positiv, är den ena sidan noll och den andra är en.

Om den ena är noll och den andra är negativ, är den ena sidan en och den andra är odefinierad.

Med tanke på endast positiva heltal är det uppenbart att a = b fungerar.

För andra lösningar, ta en naturlig logg för båda sidor (inga problem, eftersom båda sidor är positiva), och vi får

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

Dela båda sidor med a och ln (a) (inga problem, vi överväger bara positiva heltal just nu), 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)

Ordna om till

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

Multiplicera båda sidor genom ln (a) och dela båda sidor med (b / a) -1 för att få

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

Observera att detta är delning med noll om a = b, men vi har redan betraktat det fallet. Så detta gäller endast för> 0, b> 0 och en b. Ge nu b / aa namn, kall det x = b / a.

Så vi har

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

Observera att vänster sida alltid är positiv, såvida inte a == 1, i vilket fall vi behöver x == 1 (höger sida kan definieras genom kontinuitet för att täcka x = 1, och är lika med 1 vid denna punkt). Men om x == 1, då är a = b, så härledningen av denna ekvation var ogiltig, och vi betraktade redan a = b ändå.

Så vänster sida är positiv för a> 1, men det är OK, för höger sida är alltid positiv för positiv x.Men vi kan tänka på fallen av ln (a) 1, separat. (ln (a) = 1 förekommer inte för helvärden av a.)

För ln (a) har vi

ln (x) / (x-1 ) .

Om x> 1 är täljaren och nämnaren positiva så att

ln (x) -1, vilket alltid är fallet. Men om x , så är täljaren och nämnaren negativa, så att

ln (x)> x-1

Detta är aldrig fallet för logaritmfunktionen. Så om ln (a) 1. (Det finns ingen anledning att överväga x = 1, eftersom vi redan har täckt a = b.)

Vad händer om ln (a)> 1? Då

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

Om x> 1 är täljaren och nämnaren positiva så att

ln ( x)> x-1

Detta är aldrig fallet. Om x är täljaren och nämnaren negativa, så att

ln (x) -1

Detta är alltid fallet. Så om ln (a)> 1 behöver vi x .

Så för positiva heltal med b har vi två fall att tänka på. En är

ln (a) 1

och den andra är

ln (a)> 1 och x

Så låt oss tänka på det här. Det finns bara en a> 1 (vi har redan betraktat a = 1) så att ln (a) , och det är a = 2. Motsvarande x ges sedan av

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

En utbildad gissning (och ett av de andra svaren har redan detta lösning) är x = 2. Men x = b / a och a = 2, så om x = 2, då är a = 4. Observera att det inte kan finnas en lösning för något annat värde på x, eftersom ln (x) / (x-1) är en strikt minskande funktion för x> 0.

Det andra fallet är ln (a) > 1, men i det här fallet har vi x . Det betyder b / a eller b 1 (sant för alla heltal a> 2), så är a det större heltalet, och b är det mindre. Men kan ln (b)> 1? Om så är fallet är det bara att byta a och b, detta måste också vara en lösning på grund av symmetrin. Sedan är ln (a)> 1, vilket betyder x 1 och ln (b)> 1. ln (b) = 1 motsvarar inte ett heltal, så om ln (a)> 1 måste vi ha ln (b) 1 med ln (b) är 2.

Så om det finns en positiv heltalslösning är antingen de två värdena a och b desamma eller ett av dem är 2 och den andra är 4.

Det finns inga lösningar som involverar a = 0 eller b = 0, såvida du inte vill kalla a = b = 0 en lösning, med motiveringen att odefinierad är lika med odefinierad, men Jag vill inte ta bort min matematiklicens.

Kan vi ha negativa lösningar. Anta att a 0 (vi vet att vi inte kan ha b = 0), då är a ^ b ett heltal, men b ^ a är bara ett heltal om a = -1. Men då är a ^ b -1 om b är udda och +1 om b är jämnt. b ^ a är positivt, så vi kan inte ha a = -1 och udda b. Men om b är jämnt är a ^ b 1 och b ^ a är inte lika med en. Så vi kan inte ha en 0. Av samma anledning kan vi inte ha a> 0 och b .

Kan vi ha a och b ? I så fall är a ^ b positivt om b är jämnt och negativt om b är udda. På samma sätt är b ^ a positivt om a är jämnt och negativt om a är udda. Så för att de två ska vara lika behöver vi både a och b vara udda, eller båda a och b vara jämna.

Antag att de är udda. Börjar sedan med

a ^ b == b ^ a

Vi multiplicerar båda sidor med negativa och ordnar om lite och får

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

Med ömsesidiga ömsesidiga sidor har vi

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

Men om a och b 0 och -b> 0, och vi har redan bestämt att de enda positiva lösningarna för -a och -b med båda udda är när -a = -b, eller a = b. Så om a och b är samma negativa udda heltal, gäller lika. Om endera är ett negativt udda heltal, men a b, är det inte en lösning.

Vad händer om a och b är negativa även heltal? Sedan får vi

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

utan att multiplicera båda sidor med -1. Med ömsesidiga båda sidor har vi

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

Vi känner redan till lösningarna där -a > 0 och -b> 0 och båda är till och med positiva heltal; antingen -a = -b eller -a = 2 och -b = 4, eller -a = 4 och -b = 2.

Detta täcker alla fall. Så den fullständiga listan över heltalslösningar är

a och b är samma positiva eller negativa heltal (men inte noll)

a = 2 och b = 4

a = 4 och b = 2

a = -2 och b = -4

a = -4 och b = -2

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *