电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹

瀏覽:3日期:2022-08-30 15:09:49

Java 無(wú)符號(hào)右移介紹

最近學(xué)習(xí)Java,看到>>>運(yùn)算符不太了解,也百度查了查,解釋得不是很清晰。那么下面講解我對(duì)>>>運(yùn)算符的認(rèn)識(shí): >>>運(yùn)算符:無(wú)符號(hào)右移運(yùn)算符 在學(xué)習(xí)>>>無(wú)符號(hào)右移運(yùn)算符前,我們先了解右移運(yùn)算符>>

下表列出了位運(yùn)算符的基本運(yùn)算,假設(shè)整數(shù)變量A的值為60和變量B的值為13:

操作符 描述 例子 & 如果相對(duì)應(yīng)位都是1,則結(jié)果為1,否則為0 (A&B),得到12,即0000 1100 | 如果相對(duì)應(yīng)位都是0,則結(jié)果為0,否則為1 (A | B)得到61,即 0011 1101 ^ 如果相對(duì)應(yīng)位值相同,則結(jié)果為0,否則為1 (A ^ B)得到49,即 0011 0001 〜 按位取反運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位,即0變成1,1變成0。 (〜A)得到-61,即1100 0011 << 按位左移運(yùn)算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù)。 A << 2得到240,即 1111 0000 >> 按位右移運(yùn)算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù)。 A >> 2得到15即 1111 >>> 按位右移補(bǔ)零操作符。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動(dòng)得到的空位以零填充。 A>>>2得到15即0000 1111

右移運(yùn)算符

>>右移運(yùn)算符:正數(shù)高位補(bǔ)0,負(fù)數(shù)高位補(bǔ)1

看一個(gè)例子:

public static void main(String[] args) { /** * 10的二進(jìn)制:1010 * 因?yàn)槭钦龜?shù),所以計(jì)算機(jī)高位的0不會(huì)輸出 * 負(fù)數(shù)會(huì)輸出32位bit */ System.out.println(Integer.toBinaryString(10 >> 2)); System.out.println(Integer.toBinaryString(-10)); System.out.println(Integer.toBinaryString(-10 >> 2)); }

輸出:

Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹

計(jì)算機(jī)計(jì)算數(shù)據(jù)以補(bǔ)碼的方式進(jìn)行計(jì)算正數(shù)原碼、反碼、補(bǔ)碼不變負(fù)數(shù)(-10):以8bit(位)表示原碼----> 1000 1010反碼----> 1111 0101(符號(hào)位不變,其他位取反)補(bǔ)碼----> 1111 0110(反碼基礎(chǔ)上 + 1)所以會(huì) -10 會(huì)輸出:1111…0110-10 >> 2 :1111…1101(高位補(bǔ)1)10 >> 2:0000…0010

無(wú)符號(hào)右移運(yùn)算符

>>> 無(wú)符號(hào)右移運(yùn)算符與 >> 右移運(yùn)算符的正數(shù)相同,只不過關(guān)鍵在于負(fù)數(shù)的不同,>>>運(yùn)算符右移:**負(fù)數(shù)高位補(bǔ) 0 ,其它位不變**

看一個(gè)例子:

public static void main(String[] args) { System.out.println(Integer.toBinaryString(10 >>> 2)); System.out.println(Integer.toBinaryString(-10)); System.out.println(Integer.toBinaryString(-10 >>> 2)); }

輸出:(注意和以上例子比較)

Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹

解釋

Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹

總結(jié):>>> 和 >> 的區(qū)別在于:

>>> 負(fù)數(shù)高位補(bǔ) 0; >> 負(fù)數(shù)高位補(bǔ)1;

左移運(yùn)算符 <<

左移的規(guī)則只記住一點(diǎn):該數(shù)對(duì)應(yīng)的二進(jìn)制碼補(bǔ)碼整體左移,丟棄最高位,0補(bǔ)最低位

如果移動(dòng)的位數(shù)超過了該類型的最大位數(shù),那么編譯器會(huì)對(duì)移動(dòng)的位數(shù)取模。如對(duì)int型移動(dòng)33位,實(shí)際上只移動(dòng)了33%32=1位;

當(dāng)左移的運(yùn)算數(shù)是int 類型時(shí),每移動(dòng)1位它的第31位(0~31)就要被移出并且丟棄;當(dāng)左移的運(yùn)算數(shù)是long 類型時(shí),每移動(dòng)1位它的第63(0~63)位就要被移出并且丟棄。當(dāng)左移的運(yùn)算數(shù)是byte 和short類型時(shí),將自動(dòng)把這些類型擴(kuò)大為 int 型。

正數(shù)和負(fù)數(shù)的左移操作分兩種情況:

(1)左移n位(1<=n<=31)之后操作數(shù)沒有溢出

這種情況等價(jià)于===原操作*2^n,例如60的二進(jìn)制補(bǔ)碼是 111100=2^5+2^4+2^3+2^2=60

60左移25位之后的二進(jìn)制補(bǔ)碼為:01111000000000000000000000000000 =(2^5+2^4+2^3+2^2)*2^25=2^30+2^29+2^28+2^27

而int類型占四個(gè)字節(jié),一共三十二位,第一位是符號(hào)位,int類型的數(shù)值范圍是(-2^31~2^31-1)所以60左移25位操作數(shù)沒有溢出,最高位還是0;

(2)左移n位(1<=n<=31)之后操作數(shù)溢出

但如果再向左移動(dòng)一位的話,即60左移26位之后的二進(jìn)制補(bǔ)碼為:

11110000000000000000000000000000 =(2^5+2^4+2^3+2^2)*2^26=2^31+2^30+2^29+2^28

此時(shí)二進(jìn)制最高位是1,操作數(shù)溢出,變成負(fù)數(shù)。

60移位前二進(jìn)制(補(bǔ)碼表示):111100 60-60移位前二進(jìn)制(補(bǔ)碼表示):11111111111111111111111111000100 -60 左移的規(guī)則只記住一點(diǎn):丟棄最高位,0補(bǔ)最低位60左移1位的二進(jìn)制(補(bǔ)碼表示):1111000 12060左移25位的二進(jìn)制(補(bǔ)碼表示):1111000000000000000000000000000 201326592060左移26位的二進(jìn)制(補(bǔ)碼表示):11110000000000000000000000000000 -26843545660左移30位的二進(jìn)制(補(bǔ)碼表示):0 0-60左移1位的二進(jìn)制(補(bǔ)碼表示):11111111111111111111111110001000 -120-60左移25位的二進(jìn)制(補(bǔ)碼表示):10001000000000000000000000000000 -2013265920-60左移26位的二進(jìn)制(補(bǔ)碼表示):10000000000000000000000000000 268435456-60左移32位的二進(jìn)制(補(bǔ)碼表示):11111111111111111111111111000100 -60

到此這篇關(guān)于Java 無(wú)符號(hào)右移與右移運(yùn)算符的使用介紹的文章就介紹到這了,更多相關(guān)Java 無(wú)符號(hào)右移與右移運(yùn)算符內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 河南道路标志牌_交通路标牌_交通标志牌厂家-郑州路畅交通 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 罗茨真空机组,立式无油往复真空泵,2BV水环真空泵-力侨真空科技 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 开云(中国)Kaiyun·官方网站 - 登录入口| 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 济南菜鸟驿站广告|青岛快递车车体|社区媒体-抖音|墙体广告-山东揽胜广告传媒有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 中矗模型-深圳中矗模型设计有限公司 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 |