最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
java位運(yùn)算符的代碼,java位運(yùn)算符號(hào)

Java中位運(yùn)算符的具體應(yīng)用是什么,在實(shí)際編程中有什么作用

位邏輯運(yùn)算符有“與”(AND)、“或”(OR)、“異或(XOR)”、“非(NOT)”,分別用“”、“|”、“^”、“~”表示。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供察雅企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為察雅眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

下面的例子說(shuō)明了位邏輯運(yùn)算符:

// Demonstrate the bitwise logical operators.

class BitLogic {

public static void main(String args[]) {

String binary[] = {

"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111",

"1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"

};

int a = 3; // 0 + 2 + 1 or 0011 in binary

int b = 6; // 4 + 2 + 0 or 0110 in binary

int c = a | b;

int d = a b;

int e = a ^ b;

int f = (~a b) | (a ~b);

int g = ~a 0x0f;

System.out.println(" a = " + binary[a]);

System.out.println(" b = " + binary[b]);

System.out.println(" a|b = " + binary[c]);

System.out.println(" ab = " + binary[d]);

System.out.println(" a^b = " + binary[e]);

System.out.println("~ab|a~b = " + binary[f]);

System.out.println(" ~a = " + binary[g]);

}

}

在本例中,變量a與b對(duì)應(yīng)位的組合代表了二進(jìn)制數(shù)所有的 4 種組合模式:0-0,0-1,1-0,和1-1。“|”運(yùn)算符和“”運(yùn)算符分別對(duì)變量a與b各個(gè)對(duì)應(yīng)位的運(yùn)算得到了變量c和變量d的值。對(duì)變量e和f的賦值說(shuō)明了“^”運(yùn)算符的功能。字符串?dāng)?shù)組binary代表了0到15對(duì)應(yīng)的二進(jìn)制的值。在本例中,數(shù)組各元素的排列順序顯示了變量對(duì)應(yīng)值的二進(jìn)制代碼。數(shù)組之所以這樣構(gòu)造是因?yàn)樽兞康闹祅對(duì)應(yīng)的二進(jìn)制代碼可以被正確的存儲(chǔ)在數(shù)組對(duì)應(yīng)元素binary[n]中。例如變量a的值為3,則它的二進(jìn)制代碼對(duì)應(yīng)地存儲(chǔ)在數(shù)組元素binary[3]中。~a的值與數(shù)字0x0f (對(duì)應(yīng)二進(jìn)制為0000 1111)進(jìn)行按位與運(yùn)算的目的是減小~a的值,保證變量g的結(jié)果小于16。因此該程序的運(yùn)行結(jié)果可以用數(shù)組binary對(duì)應(yīng)的元素來(lái)表示。

>運(yùn)算符,看代碼。'>Java 移位>>運(yùn)算符,看代碼。

-4的二進(jìn)制表示為1111 1111 1111 1011

i3 右移3位,移出的不管,左端補(bǔ)1 變?yōu)?111 1111 1111 1111 這是-1的二進(jìn)制表示,所以結(jié)果為-1.

i5 同理。

具體原理:

先來(lái)說(shuō)一下怎么得出負(fù)數(shù)的二進(jìn)制。原碼,反碼,補(bǔ)碼,這三個(gè)概念搞清。

1、原碼:一個(gè)正數(shù),按照絕對(duì)值大小轉(zhuǎn)換成的二進(jìn)制數(shù);一個(gè)負(fù)數(shù)按照絕對(duì)值大小轉(zhuǎn)換成的二進(jìn)制數(shù),然后最高位補(bǔ)1,稱為原碼。

比如 00000000 00000000 00000000 00000101 是 5的 原碼。

10000000 00000000 00000000 00000101 是 -5的 原碼。

備注:

比如byte類型,用2^8來(lái)表示無(wú)符號(hào)整數(shù)的話,是0 - 255了;如果有符號(hào), 最高位表示符號(hào),0為正,1為負(fù),那么,正常的理解就是 -127 至 +127 了.這就是原碼了,值得一提的是,原碼的弱點(diǎn),有2個(gè)0,即+0和-0(10000000和00000000);還有就是,進(jìn)行異號(hào)相加或同號(hào)相減時(shí),比較笨蛋,先要判斷2個(gè)數(shù)的絕對(duì)值大小,然后進(jìn)行加減操作,最后運(yùn)算結(jié)果的符號(hào)還要與大的符號(hào)相同;于是,反碼產(chǎn)生了。

2、反碼:正數(shù)的反碼與原碼相同,負(fù)數(shù)的反碼為對(duì)該數(shù)的原碼除符號(hào)位外各位取反[每一位取反(除符號(hào)位)]。

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

比如:正數(shù)00000000 00000000 00000000 00000101 的反碼還是 00000000 00000000 00000000 00000101

負(fù)數(shù)10000000 00000000 00000000 00000101 的反碼則是 11111111 11111111 11111111 11111010。

反碼是相互的,所以也可稱:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互為反碼。

備注:還是有+0和-0,沒(méi)過(guò)多久,反碼就成為了過(guò)濾產(chǎn)物,也就是,后來(lái)補(bǔ)碼出現(xiàn)了。

3、補(bǔ)碼:正數(shù)的補(bǔ)碼與原碼相同,負(fù)數(shù)的補(bǔ)碼為對(duì)該數(shù)的原碼除符號(hào)位外各位取反,然后在最后一位加1.

比如:10000000 00000000 00000000 00000101 的補(bǔ)碼是:11111111 11111111 11111111 11111010。

那么,補(bǔ)碼為:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

備注:1、從補(bǔ)碼求原碼的方法跟原碼求補(bǔ)碼是一樣的 ,也可以通過(guò)完全逆運(yùn)算來(lái)做,先減一,再取反。

2、補(bǔ)碼卻規(guī)定0沒(méi)有正負(fù)之分

所以,-5 在計(jì)算機(jī)中表達(dá)為:11111111 11111111 11111111 11111011。轉(zhuǎn)換為十六進(jìn)制:0xFFFFFFFB。

搞懂二進(jìn)制表示后,再來(lái)說(shuō)一下左移右移運(yùn)算符。

左移運(yùn)算是將一個(gè)二進(jìn)制位的操作數(shù)按指定移動(dòng)的位數(shù)向左移位,移出位被丟棄,右邊的空位一律補(bǔ)0。右移運(yùn)算是將一個(gè)二進(jìn)制位的操作數(shù)按指定移動(dòng)的位數(shù)向右移動(dòng),移出位被丟棄,左邊移出的空位或者一律補(bǔ)0,或者補(bǔ)符號(hào)位,這由不同的機(jī)器而定。在使用補(bǔ)碼作為機(jī)器數(shù)的機(jī)器中,正數(shù)的符號(hào)位為0,負(fù)數(shù)的符號(hào)位為1。(均由機(jī)器來(lái)定)

So,為什么得到-1知道了吧~~~

JAVA位運(yùn)算符

| ^ ~

與 : 1010 1100 = 1000

或| :1010 |1100=1110

異或^ :1010^1100=0110

左移:11002=0000

右移:正數(shù)00112=0000 負(fù)數(shù)情況高位補(bǔ)1

右移:正數(shù),負(fù)數(shù)高位都補(bǔ)0

java 位運(yùn)算符和邏輯運(yùn)算符,有什么區(qū)別,&和&&

true

=

1

false

=

再看下面這段文字

一、邏輯運(yùn)算符:

包括:1。邏輯與

2。||邏輯或

3。!邏輯非

邏輯運(yùn)算符用于對(duì)包含關(guān)系運(yùn)算符的表達(dá)式進(jìn)行合并或取非

對(duì)于使用邏輯運(yùn)算符的表達(dá)式,返回0表示“假”,返回1表示“真”。關(guān)于邏輯運(yùn)算符的解釋

請(qǐng)注意:任何使用兩個(gè)字符做符號(hào)的運(yùn)算符,兩字符之間不應(yīng)有空格,即將==寫(xiě)成=

=是錯(cuò)誤的。

假設(shè)一個(gè)程序在同時(shí)滿足條件a10和b==7時(shí),必須執(zhí)行某些操作。應(yīng)使用關(guān)系運(yùn)算符和邏輯運(yùn)算符“與”來(lái)寫(xiě)這個(gè)

條件的代碼。用表示“與”運(yùn)算符,該條件代碼如下:

(a10)

(b==7);

類似地,“或”是用于檢查兩個(gè)條件中是否有一個(gè)為真的運(yùn)算符。它由兩個(gè)連續(xù)的管道符號(hào)(||)表示。如果上例

改為:如果任一語(yǔ)句為真,則程序需執(zhí)行某些操作,則條件代碼如下:

(a10)

||

(b==7);

第三個(gè)邏輯運(yùn)算符“非”用一個(gè)感嘆號(hào)(!)表示。這個(gè)運(yùn)算符對(duì)表達(dá)式的真值取反。例如,如果變量s小于10,程序

程序需執(zhí)行某些操作,則條件代碼如下:

(s10)

(!(s=10))

//s不大于等于10

關(guān)系運(yùn)算符和邏輯運(yùn)算符的優(yōu)先級(jí)一般都低于算術(shù)運(yùn)算符。例如,54+3的計(jì)算與5(4+3)運(yùn)算符是一樣的,即

先計(jì)算4+3,再執(zhí)行關(guān)系運(yùn)算。此表達(dá)示的結(jié)果為“假”,即,將返回0。

下面的語(yǔ)句

printf("%d",54+3);

將輸出

可以總結(jié)為:的結(jié)果是真真為真。||的結(jié)果是假假為假。

二、位運(yùn)算符:

包括:1。位與符

2。|位或符

3。^位異或符

4。~位取反符

以操作數(shù)12為例。位運(yùn)算符將數(shù)字12視為1100。位運(yùn)算符將操作數(shù)視為位而不是數(shù)值。數(shù)值

可以是任意進(jìn)制的:十進(jìn)制、八進(jìn)制或十六進(jìn)制。位運(yùn)算符則將操作數(shù)轉(zhuǎn)化為二進(jìn)制,并相應(yīng)地返回1或0。

位運(yùn)算符將數(shù)字視為二進(jìn)制值,并按位進(jìn)行相應(yīng)運(yùn)算,運(yùn)算完成后再重新轉(zhuǎn)換為數(shù)字。例如:

表達(dá)式1015表示(1010

1111),它將返回表示1010的值10。因?yàn)檎嬲娴谜妫蛘呤?1得1,同位全是1結(jié)果也是1

表達(dá)式10|15表示(1010

|

1111),它將返回表示1111的值15。假假得假。全零得零。

表達(dá)式10^15表示(1010

^

1111),

它將返回表示0101的值5。此時(shí)是同性相斥,相同的就為假。

表達(dá)式~10表示(~1010),它將返回表示0101的值

-11。此號(hào)好理解,按位取反

java 位運(yùn)算符 ~求解過(guò)程。 int m = 8; System.out.println(~m);

正數(shù)取~:-(a+1)

負(fù)數(shù)取~:(a+1)

8是正數(shù),補(bǔ)碼與其源碼相同。為:0(符號(hào)位)...0001000(因?yàn)槟J(rèn)是int型所以32位)

對(duì)其~操作后為:1(符號(hào)位)...1110111

顯霸氣編程源碼:取反加1(除去符號(hào)位)

1) 1(符號(hào)位)...1001000 除去符號(hào)取反

2) 1(符號(hào)位)...1001001 除去符號(hào)加1

所以最后是-9


分享名稱:java位運(yùn)算符的代碼,java位運(yùn)算符號(hào)
網(wǎng)頁(yè)網(wǎng)址:http://fisionsoft.com.cn/article/hocsdh.html