最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中左移和右移問題圖文詳解

 更新時間:2021年11月21日 10:49:08   作者:CLAY超  
左移和右移并不常用,在一些特殊情況下才會使用,比如加解密時,會大量用到,這篇文章主要給大家介紹了關于Java中左移和右移問題的相關資料,需要的朋友可以參考下

?1 原碼、反碼、補碼

原碼:將十進制轉化為二進制即原碼;
反碼:正數的反碼與原碼相同,負數的反碼(除卻最高位的符號位不變)與原碼相反;
補碼:正數的補碼與原碼相同,負數的補碼(除卻最高位的符號位不變)與原碼的取反加一。
舉例:5 和 -5
5:
原碼:0 0000000 00000000 00000000 00000101
反碼:0 0000000 00000000 00000000 00000101
補碼:0 0000000 00000000 00000000 00000101
-5:
原碼:1 00000000 00000000 00000000 00000101
反碼:1 1111111 11111111 11111111 11111010
補碼:1 1111111 11111111 11111111 11111011

2 位移操作

我們需要知道將一個數字,在計算機中進行移動多少位,例如8<<1代表將8轉化為二進制在計算機中左移1位,低位補零;
<<:左移:低位補0
>>:有符號右移:正數高位補0,負數高位補1
>>>:無符號右移,高位補零
為什么沒有無符號左移呢?因為左移的情況下只存在補零的情況。
舉例 :5 和 -5
5<<1
原碼:0 0000000 00000000 00000000 00000101
左移1位:0 0000000 00000000 00000000 00001010
即:10
-5<<1
原碼:1 00000000 00000000 00000000 00000101
補碼:1 1111111 11111111 11111111 11111011
左移1位:1 1111111 11111111 11111111 11110110
取其補碼:1 0000000 00000000 00000000 00001010
即:-10
5>>1
原碼:0 0000000 00000000 00000000 00000101
右移1位:0 0000000 00000000 00000000 00000010
即:2
-5>>1
原碼:1 00000000 00000000 00000000 00000101
補碼:1 1111111 11111111 11111111 11111011
右移1位:1 1111111 11111111 11111111 11111101
取其補碼:1 0000000 00000000 00000000 00000011
即:-3
5>>>1:與5>>1一樣,都是高位補0
原碼:0 0000000 00000000 00000000 00000101
右移1位:0 0000000 00000000 00000000 00000010
即:2
-5>>>1
原碼:1 00000000 00000000 00000000 00000101
補碼:1 1111111 11111111 11111111 11111011
右移1位:0 1111111 11111111 11111111 11111101
即:2147483645
代碼運行截圖

總結:

位移操作很簡單,使用補碼移動,補齊空缺位就行,除了>>:補與最高位一致的;其他移動哪缺哪補零。
在java中無論截圖中的a定義成 byte,short,int哪一種類型,它默認都是使用int類型(4字節(jié)32位),你使用long(8字節(jié)64位)

3 補充操作符

~(按位非):
逐位取反
|(按位或):
一真為真
1|0=1,
0|0=0,
1|1=1,
0|1=1
&(按位與):
兩真為真
1|0=0,
0|0=0,
1&1=1;
0&1=0
^(按位異或):
相異為真
1^1=0
1^0=1
0^1=1
0^0=0.

總結

到此這篇關于Java中左移和右移問題的文章就介紹到這了,更多相關Java左移和右移內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 控制臺顯示java冒泡排序流程示例

    控制臺顯示java冒泡排序流程示例

    這篇文章主要介紹了控制臺顯示java冒泡排序流程示例,需要的朋友可以參考下
    2014-03-03
  • 如何用Java模擬XN*2圖靈機

    如何用Java模擬XN*2圖靈機

    這篇文章主要介紹了如何用Java模擬XN*2圖靈機方法,感興趣的朋友可以參考下
    2021-04-04
  • Java中l(wèi)ist.contains()的用法及拓展

    Java中l(wèi)ist.contains()的用法及拓展

    List集合相信大家在開發(fā)過程中幾乎都會用到,有時候難免會遇到集合里的數據是重復的,需要進行去除,下面這篇文章主要給大家介紹了關于Java中l(wèi)ist.contains()的用法及拓展的相關資料,需要的朋友可以參考下
    2023-03-03
  • Spring MVC url提交參數和獲取參數

    Spring MVC url提交參數和獲取參數

    本文重要講述通過url提交參數和獲取參數的具體操作與實現。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Java實戰(zhàn)之城市多音字處理

    Java實戰(zhàn)之城市多音字處理

    這篇文章主要介紹了Java實戰(zhàn)之城市多音字處理,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • SpringBoot2.3.0配置JPA的實現示例

    SpringBoot2.3.0配置JPA的實現示例

    這篇文章主要介紹了SpringBoot2.3.0配置JPA的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • SpringBoot切面攔截@PathVariable參數及拋出異常的全局處理方式

    SpringBoot切面攔截@PathVariable參數及拋出異常的全局處理方式

    這篇文章主要介紹了SpringBoot切面攔截@PathVariable參數及拋出異常的全局處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • mybatisplus中返回Vo的案例講解

    mybatisplus中返回Vo的案例講解

    這篇文章主要介紹了mybatisplus中返回Vo的案例,mybatisplus內置的幾個方法使用泛型限制了方法的返回類型,所以實現返回Vo還是得自定義方法,?這個方法名盡量不要和原有的名字類似,本文通過實例代碼給大家詳解講解,需要的朋友可以參考下
    2023-03-03
  • Spring AOP實現復雜的日志記錄操作(自定義注解)

    Spring AOP實現復雜的日志記錄操作(自定義注解)

    Spring AOP實現復雜的日志記錄操作(自定義注解),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java stream中Collectors的用法實例精講

    java stream中Collectors的用法實例精講

    這篇文章主要為大家介紹了java stream中Collectors的用法實例精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論

肥乡县| 北辰区| 蚌埠市| 蛟河市| 富蕴县| 灵台县| 长沙市| 岫岩| 枝江市| 东乌| 伊春市| 清远市| 桃园县| 凌海市| 邹平县| 临桂县| SHOW| 永城市| 枣阳市| 湘西| 夏河县| 金平| 阿克苏市| 清水河县| 绥棱县| 清徐县| 兰西县| 宁陕县| 柞水县| 彝良县| 蕲春县| 三河市| 道孚县| 锡林浩特市| 吉安县| 高碑店市| 开原市| 桐梓县| 乌拉特中旗| 建阳市| 柯坪县|