算符 & | ^ ~ >> << 源码-补码-反码

目录

原码

反码

补码

& 按位与

| 运算符

^ 运算符

~ 运算符

>>运算符 、<<运算符


原码

第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:

[1111 1111 , 0111 1111]

[-127 , 127]

反码

正数的反码是其本身

负数的反码是在其原码的基础上, 符号位不变,其余各个位取反

可见如果一个反码表示的是负数, 通常要将其转换成原码再计算.

补码

正数的补码是其本身

负数的补码是在反码的基础上+1

对于负数,通常也需要转换成原码在计算其数值.


char16位2个字节
shot16位2个字节
byte 8位1个字节
int32位4个字节
long64位8个字节
float32位4个字节
double64位8个字节

& 按位与

1 & 3的结果为1
来看看它的怎么运行的:
1的二进制表示为 0 0 0 0 0 0 1
3的二进制表示为 0 0 0 0 0 1 1
根据 & 的规则 得到的结果为 0 0 0 0 0 0 0 1,十进制表示就是1

只要任何一位是0 &运算的结果就是 0


| 运算符

| 跟 & 的区别在于 如果对应的位中任一个操作数为1 那么结果就是1 


^ 运算符

^运算符跟 | 类似,但有一点不同的是 如果两个操作位都为1的话,结果产生0
0 1 0 0 0 0 0 1
0 1 0 1 1 0 1 0
产生 0 0 0 1 1 0 1 1


~ 运算符

~是对位求反 1变0, 0变1 


>>运算符 、<<运算符

<< 向左移动 和 >> 向右移动,超过的位将丢失,而空出的位则补0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值