java进制、运算符

进制

  • 对于整数,有四种表示方式:
二进制:0,1,满2进1.以0b或0B开头。
十进制:0-9,满10进1.
– 八进制:0-7,满8进1.以数字0开头表示。
–十六进制:0-9 及A-F,满16进1.以0x或0X开头表示。此处的A-F不区分大小写。
  • 所有数字在计算机底层都以二进制形式存在
  • 计算机以补码的形式保存所有的整数。
  • 正数的补码与其原码相同;负数的补码是在其反码的末位加1
  • 原码:直接将一个数值换成二进制数。
  • 反码:是对原码按位取反,只是最高位(符号位)保持不变
  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位


  • 制的基本转换
十进制 二进制互转
  • 十进制转成二进制 除以2取余数
  • 二进制转成十进制 乘以2的幂数

15= 1* 2^0 + 1 *2^1 + 1* 2^2 + 1 *2^3

算数运算符

运算符

运算

范例

结果

+

正号

+3

3

-

负号

b=4; -b

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模

5%5

0

++

++

自增(前):先运算后取值

自增(后):先取值后运算

a=2;b=++a;

a=2;b=a++;

a=3;b=3

a=3;b=2

- -

- -

自减(前):先运算后取值

自减(后):先取值后运算

a=2;b=- -a

a=2;b=a- -

a=1;b=1

a=1;b=2

+

字符串相加

“He”+”llo”

“Hello”


  • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
  • 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:intx=3510;x=x/1000*1000;  x的结果是?
  • “+”除字符串相加功能外,还能把非字符串转换成字符串.例如:System.out.println("5+5="+5+5);//打印结果是?

赋值运算符

  • 符号:=
  • 扩展赋值运算符: +=,-=,*=, /=, %=

比较运算符

运算符

运算                    范例                          结果

==

相等于                                     4==3                                              false

!=

不等于                                     4!=3                                               true

<

小于                                          4<3                                               false

>

大于                                          4>3                                                true

<=

小于等于                                 4<=3                                             false

>=

大于等于                                 4>=3                                             false

instanceof

检查是否是类的对象         “Hello”  instanceof  String          true

  • 注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  • 注2:比较运算符“==”不能误写成“=”。

逻辑运算符

运算符

运算

范例

结果

&

AND(与)

false & true

false

|

OR(或)

false|true

true

^

XOR(异或)

true^false

true

!

Not(非)

!true

false

&&

AND(短路)

false&&true

false

||

OR(短路)

false||true

true

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成33&& x<6 。
  • &”和“&&”的区别:
–单&时,左边无论真假,右边都进行运算;
–双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
  • 和“||”的区别同理,双或时,左边为真,右边不参与运算。
  • 异或( ^ )与或(| )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false。

位运算符

位运算符的细节

<<

被移除的高位丢弃,空缺位补0。

>>

被移位的二进制最高位是0,右移后,空缺位补0;

最高位是1,空缺位补1。

>>>

被移位二进制最高位无论是0或者是1,空缺位都用0

&

二进制位进行&运算,只有1&1时结果是1,否则是0;

|

二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;

^

相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0

不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1

                       位运算符

运算符

运算

范例

<<

左移

3 << 2 = 12 --> 3*2*2=12

>>

右移

3 >> 1 = 1  --> 3/2=1

>>>

无符号右移

3 >>> 1 = 1 --> 3/2=1

&

与运算

6 & 3 = 2

|

或运算

6 | 3 = 7

^

异或运算

6 ^ 3 = 5

~

反码

~6 = -7

  • 位运算是直接对二进制进行运算

三元运算符

–(条件表达式)?表达式1:表达式2;
–如果条件为true,运算后的结果是表达式1;
–如果条件为false,运算后的结果是表达式2;

你可能感兴趣的:(Java基础)