一、原码、反码、补码
二、移位运算符
移位运算符有:>>
和<<
。
本文主要探究在整数型存储数据上的使用:
1、有符号数:
1.1、正数
1.1.1、左移
5 << 1
其实质就是数学上5*2^1
,结果为10
。
1.1.2、右移
5 >> 1
其实质就是数学上5/2^1
并向下取整
,即为2
。
1.2、负数
1.2.1、左移
-5 << 1
其实质就是数学上-5*2^1
,结果为-10
;
1.2.2、右移
-5 >> 1
其实质就是数学上-5/2^1
并向下取整
,即为-3
。
2、无符号数
2.1、左移
5 << 1
其实质就是数学上5*2^1
,结果为10
。
2.2、右移
5 >> 1
其实质就是数学上5/2^1
并向下取整
,即为2
。
3、总结
二进制左移m << n
,其实质就是数学上的m*2^n
;
二进制右移m >> n
,其实质就是数学上的m/2^n
并且向下取整
。
编程语言中进行移位运算的都是补码
。
注意:
1、以上使用的^
不是编程语言中的异或,而是数学中的幂次。
2、
3、
二、位运算符
&
,|
,^
,~
这四个位运算符的参与者只能是整数。
三、逻辑运算符
逻辑运算符的参与者分别是:0
、非0整数
。
结果是:0
、1
。
多重逻辑与
运算格式为:
表达式&&表达式&&表达式&&表达式
若结果为真,则每个表达式都会执行
若结果为假,则仅执行到为假的表达式
多重逻辑或
运算格式为:
表达式||表达式||表达式||表达式
若结果为假,则每个表达式都会执行
若结果为真,则仅执行到为真的表达式