第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

無符號右移不是右邊丟棄嗎?

無符號右移不是右邊丟棄的嗎,那像如下代碼所示,一上來就右移24位只剩下高8位了,異動的24位全部丟棄了,那第二次還哪來的位可以用來移動?

int str1 = 0x7ffffff;

randomAccessFile.write((str1 >>> 24) );

randomAccessFile.write((str1 >>> 16) );

randomAccessFile.write((str1 >>> 8) );

randomAccessFile.write(str1 & 0xff);


正在回答

2 回答

低位溢出,高位補0。注意,無符號右移(>>>)中的符號位(最高位)也跟著變,無符號的意思是將符號位當作數(shù)字位看待。如:-1>>>1結果為2147483647。這個數(shù)字應該比較熟悉,看兩個輸出語句就知道是什么了:

System.out.println(Integer.toBinaryString(-1>>>1));

System.out.println(Integer.toBinaryString(Integer.MAX_VALUE));

輸出結果為:

1111111111111111111111111111111

1111111111111111111111111111111

-1>>>1竟然得到了int所能表示的最大整數(shù),


0 回復 有任何疑惑可以回復我~

java 中的string 是不可變的,write的時候雖然右移了但是并沒有改變 str1本身,而是重新創(chuàng)建了一個右移后的字節(jié),因此不會有你說的問題。不知道這樣講明白么?

1 回復 有任何疑惑可以回復我~
#1

聽卡農(nóng)的碼農(nóng)

嗯,將str1寫進去,不會改變str1的結構。
2017-09-23 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

無符號右移不是右邊丟棄嗎?

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號