[理工] 計組 正負數

作者: brad84622 (brad84622)   2016-08-03 12:41:17
抱歉問個蠢問題
讀到16位元擴增成32那邊
說是正數補0
負數補1
在二進位制
電腦要雖然是用01區分正負
那假如是
111···101
電腦要怎麼知道他是一個很大的正數還是負數呢?
作者: A4P8T6X9 (殘廢的名偵探)   2016-08-03 12:49:00
宣告的時候就會用 int 或 uint 了~
作者: snailpon (にくきゅう)   2016-08-03 12:50:00
直接上圖不解釋
作者: ken52011219 (呱)   2016-08-03 13:10:00
ALU會自動全部加起來 然後溢位部份變成端回進位 得出答案 他會自行判斷你所用的 assemble languages 是否帶有unsigned or sign ex: addu add 假如有正負分就 以最高位元當判斷基本上alu沒有減法所以一定要用加法 這時就會以補數代替減法 通常都用add 除非像是address 才會用unsigned仔細思考一下 我覺得答案是 數字本身無法判斷是否為有號數 因為它本來就是一串 10 只有當instruction 又或者說 人類 來去定義它是否為有號還是無號
作者: kyuudonut (善良老百姓)   2016-08-03 21:15:00
addi 是有號 addiu 是無號看你給的指令是什麼 cpu不知道beq 的話就是視為有號 才能上下跳

Links booklink

Contact Us: admin [ a t ] ucptt.com