㈠ java是什麼東西
Java說白了就是一門語言,像我們平時學校里學的英語,或者其他外語一樣,是和其他人交流的工具,讓別人知道你要表達什麼,只不過Java語言是面向計算機的,人與機器交流,讓計算機懂得我們所要表達的,從而讓計算機運行出我們想要的結果。
java是什麼東西
㈡ java取反運算符
運算符的優先順序!高、
但是equals不是運算符、是個方法。
先計算方法的返回值,然後再!取值
㈢ Java 取反運算符
用以下代碼可以實現你要求的功能:
long lang=64509;
String str1=Long.toBinaryString(lang);//將給定的數轉為二進制字串
String str2=Long.toBinaryString(~lang);//將給定的數取反轉為二進制字串
//將取反後的二進制串取最後的 長度與第一個串長度相等 的子串,這是我們需要的二進制串
String str=str2.substring(str2.length()-str1.length());
//將它轉換為十進制整數
int i=Integer.parseInt(str, 2);
System.out.println(i);
具體理論知識如下所示:
先要理解一些概念:
在2進制中,負數是以它正值的補碼形式表達
原碼:一個整數,按照絕對值大小轉換成的二進制數,稱為原碼。
比如 0000 0000 0000 0000 0000 0000 0000 0101是 5的 原碼。
反碼:將二進制數按位取反,所得的新二進制數稱為原二進制數的反碼。
取反操作指:原為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稱為補碼。
也就是說,要得到一個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。
那麼,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
轉換為十六進制:0xFFFFFFFB。
====================================
明白了上面的就可以理解怎麼求 ~i 了
int型儲存32個二進制位,~這個符號是按位取反,就是求i的反碼。
即得到1111 1111 1111 1111 1111 1111 1111 1010
上面這串二進制代表一個負數,將它轉換成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整數的絕對值(注意:5按位取反得到的是負數)
所以轉換為int型為:6
即:int型的i=5 取反後的結果為-6
㈣ JAVA中「~」按位取反運算符的一些問題。
首先你要知道現在我們用的多數都是32位機,所以整形數都是4個位元組
那麼再看看按位取反的結果:
00000000
00000000
00000000
00000101
這是5
00000000
00000000
00000000
00000000
這是0
11111111
11111111
11111111
11111111
這是-1
11111111
11111111
11111111
11111110
這是-2
11111111
11111111
11111111
11111101
這是-3
11111111
11111111
11111111
11111100
這是-4
11111111
11111111
11111111
11111011
這是-5
11111111
11111111
11111111
11111010
這是5取反的結果-6
看懂了嗎?
㈤ java中按位取反運算的詳解
按位取反就是每一位都取反,所謂取反就是1變0,0變1
比如樓主說的10
二進製表示就是00000000
00000000
00000000
00001010
取反後就是11111111
11111111
11111111
11110101
這在十進制中就是-11
而他的二進制原碼表示就是-1011