java 计算反码_java基础知识-原码、反码、补码、运算符
一、原碼、反碼、補碼
原碼
一個數轉化成二進制。
用最高位來表示正負,最高位為0表示正數,最高位為1表示負數。
例如:
short i=5;
因為在java里short占2個字節轉化成二進制就是 00000000 00000101
所以 00000000 00000101就是5的原碼
short i=-5;
因為負數的最高位是1
所以 10000000 000000101 就是-5的原碼
反碼
正數的反碼不變,負數的反碼就是在原碼的基礎上,符號位不變,其他位取反(0變1,1變0)。
5的反碼: 00000000 00000101
-5的反碼:11111111 11111010
補碼
正數的補碼還是不變,負數的補碼就是在反碼的基礎上做+1運算
5的補碼:00000000 00000101
-5的反碼:11111111 11111011
總結:正數的反碼、補碼都不變。
負數的反碼、最高位不變其余為取反。
負數的補碼的反碼的基礎上加1。
0的原碼和反碼有兩種形式但補碼只有一只形式,0的原碼有兩種形式00000000 00000000 和10000000 00000000
對應的0的補碼也有兩種形式? 00000000 00000000 和11111111 11111111
0的補碼只有個一種????????????? 00000000 00000000
為何要要使用原碼、反碼和補碼?
二、運算符
1、算數運算符
+,-,*,/(正斜杠),%(取模)
2、自加、自減運算符
++,--
++x 和 x++的區別?
inti,a,b;
a=5;
b=5;
i=++a;
System.out.println("i="+i);//結果 i=6
System.out.println("a="+a);//結果 a=6
i=b++;
System.out.println("i="+i);//結果 i=5
System.out.println("b="+b);//結果 b=6
++x先自己累加,在計算正個公式
x++計算整個公式,再計算自己
3、關系運算符
>,>=,
==,!=
注:一個等號叫做賦值,兩個等號判斷真或假
關系運算符的結果只有兩個要么true,要么false
inta,b;
a=5;
b=5;booleanc;
c=a==b;
System.out.println(a
System.out.println(c);//結果:true
4、位運算符
位運算符把數值轉換成二進制進行計算
例:int a=5;
int b=9;
因為它們是int型
所以在內存中占4個字節,共32位
5二進制: 00000000 00000000 00000101
9二進制: 00000000 00000000 00001001
5和9上下同位各自進行計算
&(與)運算符
上下只要有一位為0則結果為0
上下都是1時結果才為1
5&9 二進制結果:00000000 00000000 00000001 轉成十進制結果:1
|(或)運算符
上下只要有一位為1則結果肯定為1
上下都是0結果才為0
5|9二進制結果:00000000 00000000 00001101 轉成十進制結果:13
^ (異或)運算符
上下全是0,或者全是1,總之上下數字相同的話該結果為0
上下一個0一個1結果為 1
5^9 二進制結果:00000000 00000000 00001100 轉成二進制:12
~ (非)運算符
~運算符是對單個數字的二進制取反
例如 ~9? 二進制是:0110? 轉成二進制:
5、位邏輯運算符
&& 與
|| 或
! 非
6、位移運算符
<< 左移
>> 右移
7、賦值運算符
操作符描述例子
=
簡單的賦值運算符,將右操作數的值賦給左側操作數
C = A + B將把A + B得到的值賦給C
+ =
加和賦值操作符,它把左操作數和右操作數相加賦值給左操作數
C + = A等價于C = C + A
- =
減和賦值操作符,它把左操作數和右操作數相減賦值給左操作數
C - = A等價于C = C -
A
* =
乘和賦值操作符,它把左操作數和右操作數相乘賦值給左操作數
C * = A等價于C = C * A
/ =
除和賦值操作符,它把左操作數和右操作數相除賦值給左操作數
C / = A等價于C = C / A
(%)=
取模和賦值操作符,它把左操作數和右操作數取模后賦值給左操作數
C%= A等價于C = C%A
<< =
左移位賦值運算符
C << = 2等價于C = C << 2
>> =
右移位賦值運算符
C >> = 2等價于C = C >> 2
&=
按位與賦值運算符
C&= 2等價于C = C&2
^ =
按位異或賦值操作符
C ^ = 2等價于C = C ^ 2
| =
按位或賦值操作符
C | = 2等價于C = C | 2
8、三目運算符
?:; "?"運算符的含義是: 先求表達式1的值, 如果為真, 則執行表達式2,并返回表達式2的結果 ; 如果表達式1的值為假, 則執行表達式3 ,并返回表達式3的結果。
例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);//結果為i = 8.因為5 > 3為true,所以i = 5 + 3.
運算符的優先級
總結
以上是生活随笔為你收集整理的java 计算反码_java基础知识-原码、反码、补码、运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 医疗器械软件网络安全法规和标准概述(附所
- 下一篇: 5M1E,软件质量管理最佳解决方案