我正在嘗試編寫一個簡單的mips程序,並且我堅持聲明一個32位有符號整數。以mips爲單位的32位有符號字
我已經寫了下面的簡單代碼:
.data
max: .word 11111111111111111111111111111111
我希望max的值是-1,但我的IDE告訴我這個數字被解釋爲-954437177。我正在使用MARS 4.4作爲我的IDE。
我在做什麼錯?我如何讓mips實際將該值識別爲-1?
我正在嘗試編寫一個簡單的mips程序,並且我堅持聲明一個32位有符號整數。以mips爲單位的32位有符號字
我已經寫了下面的簡單代碼:
.data
max: .word 11111111111111111111111111111111
我希望max的值是-1,但我的IDE告訴我這個數字被解釋爲-954437177。我正在使用MARS 4.4作爲我的IDE。
我在做什麼錯?我如何讓mips實際將該值識別爲-1?
.word將數字轉換爲十進制數,並且在轉換它時,因爲它的32位,所以只會得到最後的32位。 11111111111111111111111111111111(10)= 10001100001111011110111110110001111011011011100110000100111111100010101011000111000111000111000111000111(2)
最後32位:11000111000111000111000111000111(2)= -954437177 如果你想存儲-1爲32位,儘量 .word爲0xFFFFFFFF具有的價值-1
我不知道爲什麼它被解釋爲'-954437177',但我很確定'11111111111111111111111111111111'不會被解釋爲二進制數。爲什麼不嘗試'-1',因爲這就是你想要的? – 2014-10-08 22:00:03
這是一個很大的十進制數,當它轉換爲二進制數並截斷爲32位時,它是'-954437177'。 – Jester 2014-10-08 22:12:12
我正在寫這個作業,並且這個任務說:「使用一個循環編寫一個MIPS程序,該循環計算內存中最多五個連續(32位)字(將這些字視爲二進制補碼整數)並存儲產生一個標爲max的詞。「出於這個原因,我試圖編寫32位二進制值。有沒有辦法做到這一點?我的理解錯誤嗎? @Jester – Lesha 2014-10-08 22:18:18