日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java右移位_Java移位运算

發(fā)布時間:2024/8/1 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java右移位_Java移位运算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

java或android源碼中經(jīng)常會使用移位運算來代替乘除運算,因為移位運算的性能比乘除運算的高(PS:對于計算機(jī)而言,移位運算只是移了個位置),所以了解移位運算的計算過程對于我們閱讀源碼會有一定的幫助。

原碼、反碼、補(bǔ)碼

原碼是人腦最容易理解和計算的表示方式

第一位表示符號, 其余位表示值

-1的原碼是10000000 00000000 00000000 00000001

反碼是人腦無法直觀看出其數(shù)值的. 通常需要轉(zhuǎn)換成原碼在計算其數(shù)值

正數(shù)的反碼是其本身

負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上, 符號位不變,其余各個位取反

-1的反碼是11111111 11111111 11111111 11111110

補(bǔ)碼是人腦無法直觀看出其數(shù)值的. 通常需要轉(zhuǎn)換成原碼在計算其數(shù)值

正數(shù)的補(bǔ)碼就是其本身

負(fù)數(shù)的補(bǔ)碼是在其原碼的基礎(chǔ)上, 符號位不變, 其余各位取反, 最后+1. (即在反碼的基礎(chǔ)上+1)

-1的補(bǔ)碼是11111111 11111111 11111111 11111111

左移運算符:<<

System.out.println(1<<1); // 2

System.out.println(1<<32); // 1

System.out.println(-1<<1); // -2

System.out.println(-1<<32); // -1

結(jié)論:丟棄左邊指定位數(shù),右邊補(bǔ)0

右移運算符:>>

System.out.println(1>>1); // 0

System.out.println(1>>32); // 1

System.out.println(-1>>1); // -1,因為-1的二進(jìn)制反碼是11111111 11111111 11111111 11111111

System.out.println(-1>>32); // -1

結(jié)論:丟棄右邊指定位數(shù),左邊補(bǔ)上符號位

無符號右移運算符:>>>

System.out.println(1>>>1); // 0

System.out.println(1>>>32); // 1

System.out.println(-1>>>1); // 2147483647

System.out.println(-1>>>32); // -1,這里仍然是-1,是因為int類型是32位,32%32=0,所以實際上并沒有發(fā)生移位

結(jié)論:丟棄右邊指定位數(shù),左邊補(bǔ)上0

結(jié)論

對于機(jī)器而言,java中的移位運算都是對補(bǔ)碼執(zhí)行移位運算的,下面以-1<<1=-2為例進(jìn)行講解:

-1的原碼:10000000 00000000 00000000 00000001

-1的反碼:11111111 11111111 11111111 11111110

-1的補(bǔ)碼:11111111 11111111 11111111 11111111

執(zhí)行移位操作

-1移位后的補(bǔ)碼:11111111 11111111 11111111 11111110

-1移位后的反碼:11111111 11111111 11111111 11111101

-1移位后的原碼:10000000 00000000 00000000 00000010

得到最后的原碼十進(jìn)制值為-2

總結(jié)

以上是生活随笔為你收集整理的java右移位_Java移位运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。