日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 计算反码_java基础知识-原码、反码、补码、运算符

發布時間:2025/3/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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基础知识-原码、反码、补码、运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。