亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 3 >> 32 等于 3?

為什么 3 >> 32 等于 3?

翻閱古今 2022-12-21 13:13:54
為什么3右移32等于3而不是0。我在 nodeJs 和 Java 中得到了這些結果3 >> 31 = 03 >> 32 = 33 >> 33 = 13 >> 34 = 03 >> 35 = 0
查看完整描述

1 回答

?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

這是 Java 語言規范的一部分。右側操作數被換行,因此它始終在 0 - bits范圍內,其中bits是左側操作數的位數。由于您要移動 32 位整數,因此右手操作數包含在 0 到 31 之間。32 變為 0,33 變為 1 等。

請參閱移位運算符的 Java 語言規范

如果左側操作數的提升類型為 int,則僅右側操作數的五個最低位用作移位距離。就好像右邊的操作數受到掩碼值 0x1f (0b11111) 的按位邏輯與運算符 & (§15.22.1)。因此,實際使用的移位距離始終在 0 到 31 的范圍內,包括端值。


查看完整回答
反對 回復 2022-12-21
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號