8 svar
87 visningar
TGhost är nöjd med hjälpen
TGhost 5
Postad: 15 nov 22:27 Redigerad: 15 nov 22:41

En processor adderar talen 32571 och 32966 och får en carry bit. Hur många bitars processor är det?

Hej! Jag har försökt att ta reda på hur många bitar processor har men jag fattar inte hur man ska få fram det.

Är det någon som kan hjälpa mig med denna uppgift?


Flyttad från "Om skolan" till "Teknik" /moderator

CurtJ Online 685
Postad: 15 nov 22:42

Processorer är normalt 8, 16, 32, 64 och 128-bitar (det förekommer andra i äldre arkitekturer) och det innebär att t ex en 8-bitars processor kan hantera heltal som är 28-1 = 255, dvs tal mellan 0-255. Om man i en sån processor adderat två heltal och summan blir större än 255 så kan man inte lagra det i 8 bitar utan då använder man en sk carry-bit som då utökar talrymden till det dubbla. Tänk dig att du handräknar två tal 50+50 då du får en nolla på första positonen (0+0), och en nolla även på den andra (5+5) och då får du en etta som "carry"-siffra. Så fungerar en processor också. Det innebär att du ska addera de två talen och lista ut hur många bitar (av de ovanstående 8,16,32,64,128) som INTE kan hantera det. 

Prova där och återkom om du inte får till det.

TGhost 5
Postad: 16 nov 09:19

Jag har testat men jag har inte fått fram rätt svar, jag förstår fortfarande inte. Kan du förklara mer?

Programmeraren 3176
Postad: 16 nov 09:36

Som CurtJ skrev är det största tal som kan uttryckas med 8 bitar 2^8-1=255.

Vad är det största tal som kan uttryckas med 16 bitar?
Vad är det största tal som kan uttryckas med 32 bitar?

TGhost 5
Postad: 16 nov 09:40

2^16 = 65536-1 

2^32 = 4294967296-1 

Är det då en bit av en 32-bitars processor som behövs för att beräkna 32571 + 32966 ?

CurtJ Online 685
Postad: 16 nov 09:43

Du "lånar" inte bitar av en annan arkitektur.

Ponera nu att du har en 16-bitarsarkitektur och då kan du representera 65535 i de 16 bitarna. Om du nu adderar talen, vad får du då och kan du representera det svaret på 16 bitar. Om inte, vad innebär det?

TGhost 5
Postad: 16 nov 09:48

32571 + 32966 = 65537 

Innebär det då att det är en 32-bitars processor som behövs eftersom en 16-bitars max har 65535?

CurtJ Online 685
Postad: 16 nov 09:52

Nej, det innebär att processsorn måste indikera att talet är över 65535 och det är där carry-biten är kommer in. Man kan säga att den representerar en bit 17 i processorns aritmetik.

Hade det varit en 32-bitars processor hade inte carry-biten behövts och i uppgiften så frågas det efter vilken processor som behöver sätta carry-biten. Går man neråt till 8-bitars så kan den inte ens representera talen (32571 och 32966) så det måste alltså vara en 16-bitars processor. Blev det klarare?

TGhost 5
Postad: 16 nov 09:55

Tack så mycket, nu förstod jag bättre!

Svara Avbryt
Close