java后兩位取反代碼 Java 取反

Java 取反運算符

用以下代碼可以實現(xiàn)你要求的功能:

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設計、成都網(wǎng)站建設與策劃設計,桑珠孜網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:桑珠孜等地區(qū)。桑珠孜做網(wǎng)站價格咨詢:13518219792

long lang=64509;

String str1=Long.toBinaryString(lang);//將給定的數(shù)轉(zhuǎn)為二進制字串

String str2=Long.toBinaryString(~lang);//將給定的數(shù)取反轉(zhuǎn)為二進制字串

//將取反后的二進制串取最后的 長度與第一個串長度相等 的子串,這是我們需要的二進制串

String str=str2.substring(str2.length()-str1.length());

//將它轉(zhuǎn)換為十進制整數(shù)

int i=Integer.parseInt(str, 2);

System.out.println(i);

具體理論知識如下所示:

先要理解一些概念:

在2進制中,負數(shù)是以它正值的補碼形式表達

原碼:一個整數(shù),按照絕對值大小轉(zhuǎn)換成的二進制數(shù),稱為原碼。

比如 0000 0000 0000 0000 0000 0000 0000 0101是 5的 原碼。

反碼:將二進制數(shù)按位取反,所得的新二進制數(shù)稱為原二進制數(shù)的反碼。

取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)

比如:將5的二進制表達式的每一位取反,得

1111 1111 1111 1111 1111 1111 1111 1010

稱:1111 1111 1111 1111 1111 1111 1111 1010 是 0000 0000 0000 0000 0000 0000 0000 0101 的反碼。

反碼是相互的,所以也可稱:

1111 1111 1111 1111 1111 1111 1111 1010 和 0000 0000 0000 0000 0000 0000 0000 0101 互為反碼。

補碼:反碼加1稱為補碼。

也就是說,要得到一個數(shù)的補碼,先得到反碼,然后將反碼加上1,所得數(shù)稱為補碼。

那么,5的補碼為:

1111 1111 1111 1111 1111 1111 1111 1010 + 1 =

1111 1111 1111 1111 1111 1111 1111 1011

所以,-5 在計算機中的二進制表達為:

1111 1111 1111 1111 1111 1111 1111 1011

轉(zhuǎn)換為十六進制:0xFFFFFFFB。

====================================

明白了上面的就可以理解怎么求 ~i 了

int型儲存32個二進制位,~這個符號是按位取反,就是求i的反碼。

即得到1111 1111 1111 1111 1111 1111 1111 1010

上面這串二進制代表一個負數(shù),將它轉(zhuǎn)換成int型過程如下:

1111 1111 1111 1111 1111 1111 1111 1010-1 =

1111 1111 1111 1111 1111 1111 1111 1001

再求反:

0000 0000 0000 0000 0000 0000 0000 0110

這個值就是5的按位取反所得到的int整數(shù)的絕對值(注意:5按位取反得到的是負數(shù))

所以轉(zhuǎn)換為int型為:6

即:int型的i=5 取反后的結果為-6

java中按位取反運算的詳解

按位取反就是每一位都取反,所謂取反就是1變0,0變1

比如樓主說的10

二進制表示就是00000000

00000000

00000000

00001010

取反后就是11111111

11111111

11111111

11110101

這在十進制中就是-11

而他的二進制原碼表示就是-1011

關于JAVA 中取反問題

在2進制中,負數(shù)是以它正值的補碼形式表達

原碼:一個整數(shù),按照絕對值大小轉(zhuǎn)換成的二進制數(shù),稱為原碼。

比如 0000 0000 0000 0000 0000 0000 0000 0101是 5的 原碼。

反碼:將二進制數(shù)按位取反,所得的新二進制數(shù)稱為原二進制數(shù)的反碼。

取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)

比如:將5的二進制表達式的每一位取反,得

1111 1111 1111 1111 1111 1111 1111 1010

稱:1111 1111 1111 1111 1111 1111 1111 1010 是 0000 0000 0000 0000 0000 0000 0000 0101 的反碼。

反碼是相互的,所以也可稱:

1111 1111 1111 1111 1111 1111 1111 1010 和 0000 0000 0000 0000 0000 0000 0000 0101 互為反碼。

補碼:反碼加1稱為補碼。

也就是說,要得到一個數(shù)的補碼,先得到反碼,然后將反碼加上1,所得數(shù)稱為補碼。

那么,5的補碼為:

1111 1111 1111 1111 1111 1111 1111 1010 + 1 =

1111 1111 1111 1111 1111 1111 1111 1011

所以,-5 在計算機中的二進制表達為:

1111 1111 1111 1111 1111 1111 1111 1011

轉(zhuǎn)換為十六進制:0xFFFFFFFB。

====================================

明白了上面的就可以理解怎么求 ~i 了

int型儲存32個二進制位,~這個符號是按位取反,就是求i的反碼。

即得到1111 1111 1111 1111 1111 1111 1111 1010

上面這串二進制代表一個負數(shù),將它轉(zhuǎn)換成int型過程如下:

1111 1111 1111 1111 1111 1111 1111 1010-1 =

1111 1111 1111 1111 1111 1111 1111 1001

再求反:

0000 0000 0000 0000 0000 0000 0000 0110

這個值就是5的按位取反所得到的int整數(shù)的絕對值(注意:5按位取反得到的是負數(shù))

所以轉(zhuǎn)換為int型為:6

即:int型的i=5 取反后的結果為-6

java編程 按位取反的問題

這個問題涉及到計算機內(nèi)部的編碼。

對于整數(shù),計算機內(nèi)部用最高位表示符號位,0表示為正,1表示為負。

對于負數(shù),為了便于計算,計算機用補碼來表示其值。

已經(jīng)一個數(shù)的補碼,要知道其值分兩種情況:

1:符號位是0,正數(shù),所以后面的二進制位則表示大小,即正數(shù)的原碼=其補碼。如1表示出來則為00000001(我這里用八位來表示,也可以用16位或32位)

2:符號位是1,負數(shù),這時候需要把后面的數(shù)取反再加一(要問為什么?查一下資料吧,可以根據(jù)補碼的特性推出來),所以11111110表示的數(shù)是1111110取反為0000001,再加1,則為0000002。算上符號位,就是-2。

以你的例子來說,

a=0=0000?0000?0000?0000?0000?0000?0000?0000

~a?=?1111?1111?1111?1111?1111?1111?1111?1111

符號位是1,后面的數(shù)取反再+1

1000?0000?0000?0000?0000?0000?0000?0001?=?-1

分享文章:java后兩位取反代碼 Java 取反
鏈接地址:http://m.kartarina.com/article38/hgposp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計品牌網(wǎng)站建設App開發(fā)自適應網(wǎng)站網(wǎng)站導航商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設
主站蜘蛛池模板: 免费无码又爽又刺激一高潮| av无码a在线观看| 国产亚洲大尺度无码无码专线| 久久中文字幕无码一区二区| 亚洲欧洲日产国码无码久久99| 成人午夜亚洲精品无码网站| 久久国产精品无码HDAV| 高潮潮喷奶水飞溅视频无码| 男人av无码天堂| 秋霞无码一区二区| 国产精品多人p群无码| 性色av无码不卡中文字幕| 久久午夜福利无码1000合集| 亚洲午夜AV无码专区在线播放| 亚洲熟妇无码AV不卡在线播放| 中文无码AV一区二区三区 | 久久无码专区国产精品| 少妇极品熟妇人妻无码| 久久亚洲日韩看片无码| 人妻中文字系列无码专区| 中文有无人妻vs无码人妻激烈| 日韩夜夜高潮夜夜爽无码| 孕妇特级毛片WW无码内射| 91久久九九无码成人网站| 无码专区中文字幕无码| 亚洲AV无码精品无码麻豆| 国产乱人无码伦av在线a| 国产成年无码久久久免费| 一区二区三区无码高清视频| 亚洲AV无码男人的天堂| 亚洲日韩av无码中文| 亚洲aⅴ无码专区在线观看 | AV无码久久久久不卡蜜桃| 久久亚洲精品AB无码播放| 亚洲AV无码第一区二区三区| 亚洲AV日韩AV永久无码绿巨人 | 亚洲AV无码一区二区三区牛牛| 久久午夜无码免费| 无码精品人妻一区二区三区漫画| 亚洲AV无码久久精品蜜桃| AV无码精品一区二区三区|