[問題] 位移運算的問題

看板java作者 (uishi)時間11年前 (2013/02/28 11:13), 編輯推噓2(202)
留言4則, 4人參與, 最新討論串1/1
在書上看到一個問題 int 型態 -2 >> 1 11111111111111111111111111111110 ↓右移一個位元 _1111111111111111111111111111111 ↓補1 11111111111111111111111111111111 ↓ -1 int 型態 -2 >>> 1 11111111111111111111111111111110 ↓右移一個位元 _1111111111111111111111111111111 ↓補1 01111111111111111111111111111111 ↓ 2147483647 為什麼 >> 最左邊是補1 而>>>最左邊是補0呢 書上沒說明>< 可以幫我解答一下嗎 謝謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.230.64.211

02/28 11:20, , 1F
google一下就有解答...
02/28 11:20, 1F

02/28 11:36, , 2F
這沒有為什麼, >>> 就是為了這個行為而定義的吧
02/28 11:36, 2F

02/28 23:59, , 3F
結論不太正確這不是補0還是1的問題,是數值正負號的問題
02/28 23:59, 3F

03/01 08:25, , 4F
樓上是對的,補的數字是根據正負號,因為不能改變數值
03/01 08:25, 4F
文章代碼(AID): #1HBij6hI (java)