看板 Grad-ProbAsk 關於我們 聯絡資訊
抱歉問個蠢問題 讀到16位元擴增成32那邊 說是正數補0 負數補1 在二進位制 電腦要雖然是用01區分正負 那假如是 111···101 電腦要怎麼知道他是一個很大的正數還是負數呢? ----- Sent from JPTT on my Samsung SM-N9208. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.136.185 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1470199279.A.E75.html
A4P8T6X9: 宣告的時候就會用 int 或 uint 了~ 08/03 12:49
snailpon: 直接上圖不解釋 08/03 12:50
ken52011219: ALU會自動全部加起來 然後溢位部份變成端回進位 得出 08/03 13:10
ken52011219: 答案 他會自行判斷你所用的 assemble languages 是 08/03 13:10
ken52011219: 否帶有unsigned or sign ex: addu add 假如有正負分 08/03 13:10
ken52011219: 就 以最高位元當判斷 08/03 13:10
ken52011219: 基本上alu沒有減法所以一定要用加法 這時就會以補數 08/03 13:15
ken52011219: 代替減法 通常都用add 除非像是address 才會用unsign 08/03 13:15
ken52011219: ed 08/03 13:15
ken52011219: 仔細思考一下 我覺得答案是 數字本身無法判斷是否為 08/03 13:25
ken52011219: 有號數 因為它本來就是一串 10 只有當instruction 又 08/03 13:25
ken52011219: 或者說 人類 來去定義它是否為有號還是無號 08/03 13:25
kyuudonut: addi 是有號 addiu 是無號 08/03 21:15
kyuudonut: 看你給的指令是什麼 cpu不知道 08/03 21:15
kyuudonut: beq 的話就是視為有號 才能上下跳 08/03 21:16