麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

淺談java中的移動位運算:,>>>

2024-07-14 08:43:55
字體:
來源:轉載
供稿:網友

1. 概念

<< 左移運算符,左移是在后面補0, num << 1,相當于num乘以2
>> 右移運算符, 右移是在前面補1或0,num >> 1, 相當于num除以2
>>> 無符號右移,是在前面補0, 忽略符號位,空位都以0補齊
另外, 不論是左右還是右移32位,相當于不移動,還是原值。

實際上 在java虛擬機執行這句代碼的時候如下這樣執行的:
5>>(n%32)--->結果
你這里n=32 ;所以5>>32即是 5>>(32%32)-->5>>0 的結果;

2. 測試代碼

public class Test{ public Test(){ System.out.println("=============算術右移 >> ==========="); int i=0xC0000000; System.out.println("移位前:i= "+i+" = "+Integer.toBinaryString(i)+"(B)"); i=i>>28; System.out.println("移位后:i= "+i+" = "+Integer.toBinaryString(i)+"(B)");  System.out.println("---------------------------------");  int j=0x0C000000; System.out.println("移位前:j= "+j+" = "+Integer.toBinaryString(j)+"(B)"); j=j>>24; System.out.println("移位后:j= "+j+" = "+Integer.toBinaryString(j)+"(B)");  System.out.println("/n"); System.out.println("==============邏輯右移 >>> ============="); int m=0xC0000000; System.out.println("移位前:m= "+m+" = "+Integer.toBinaryString(m)+"(B)"); m=m >>> 28; System.out.println("移位后:m= "+m+" = "+Integer.toBinaryString(m)+"(B)");  System.out.println("---------------------------------");  int n=0x0C000000; System.out.println("移位前:n= "+n+" = "+Integer.toBinaryString(n)+"(B)"); n=n>>24; System.out.println("移位后:n= "+n+" = "+Integer.toBinaryString(n)+"(B)");  System.out.println("/n"); System.out.println("==============移位符號的取模==============="); int a=0xCC000000; System.out.println("移位前:a= "+a+" = "+Integer.toBinaryString(a)+"(B)"); System.out.println("算術右移32:a="+(a>>32)+" = "+Integer.toBinaryString(a>>32)+"(B)"); System.out.println("邏輯右移32:a="+(a>>>32)+" = "+Integer.toBinaryString(a>>>32)+"(B)");  System.out.println("算術右移64:a="+(a>>64)+" = "+Integer.toBinaryString(a>>64)+"(B)"); System.out.println("邏輯右移64:a="+(a>>>64)+" = "+Integer.toBinaryString(a>>>64)+"(B)");  }  public static void main(String[] args){ new Test(); } } 

運行結果:

=============算術右移 >> ===========
移位前:i= -1073741824 = 11000000000000000000000000000000(B)
移位后:i= -4 = 11111111111111111111111111111100(B)

移位前:j= 201326592 = 1100000000000000000000000000(B)
移位后:j= 12 = 1100(B)

==============邏輯右移 >>> =============
移位前:m= -1073741824 = 11000000000000000000000000000000(B)
移位后:m= 12 = 1100(B)

移位前:n= 201326592 = 1100000000000000000000000000(B)
移位后:n= 12 = 1100(B)

==============移位符號的取模===============
移位前:a= -872415232 = 11001100000000000000000000000000(B)
算術右移32:a=-872415232 = 11001100000000000000000000000000(B)
邏輯右移32:a=-872415232 = 11001100000000000000000000000000(B)
算術右移64:a=-872415232 = 11001100000000000000000000000000(B)
邏輯右移64:a=-872415232 = 11001100000000000000000000000000(B)

3. 為什么沒有無符號左移

這個問題大家可以思考一下,應該能想出來。(提示:沒有就是沒有存在的意思)

以上所述是小編給大家介紹的java中的移動位運算:,>>>詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av性色全交蜜桃成熟时 | 亚洲综合视频网 | 久久91亚洲人成电影网站 | 国产91在线亚洲 | 日本成人在线播放 | 国产午夜精品理论片a级探花 | 中文字幕精品在线播放 | 在线观看国产网站 | 国产一级爱c视频 | 国产超碰人人做人人爱 | h网站在线观看 | 高清av在线 | 亚欧美一区二区 | 成人福利免费在线观看 | 午色影院 | 成人免费毛片在线观看 | 韩国精品视频在线观看 | 黄色片网站在线看 | 亚洲91网 | 久久99久久98精品免观看软件 | 免费特黄 | 久久人人爽人人爽人人片av高请 | 午夜在线观看视频网站 | 182tv成人福利视频免费看 | 看黄在线 | 激情久久一区二区 | 国产成人高清成人av片在线看 | 欧美综合在线观看视频 | 日本欧美一区二区三区视频麻豆 | 国产人成精品综合欧美成人 | 亚洲日本韩国在线观看 | 日韩黄色片免费看 | 香蕉视频1024| 亚洲无线看 | 欧美一区二区三区久久精品视 | 成年性羞羞视频免费观看无限 | 色婷婷久久久久久 | 91久久精品一二三区 | 1024亚洲天堂 | 成年人在线免费播放视频 | 久久久久久久久久久影视 |