原码
原码表示法在数值前面增加了一位符号位
反码 正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
补码 计算机中数值一律用补码来表示和存储
负数的补码在反码的基础上+1
正数的补码就是本身
在运算中,位运算后补码为正数的,就采用正数的规则 补码为负数的,就采用负数的规则
java运算,位运算
位运算 在计算机中都要用补码进行运算
^异或 例子 8^11 相同则为0 不相同则为1
源码 0000 1000 ...8
0000 1011 ...11
反码 0000 1000
0000 1011
补码 0000 1000
0000 1011
运算 0000 0011
反码 0000 0011
源码 0000 0011 ...3
&位与
两位都是1才是1
|位或
两位都是0才是0
~位非
~(-5)
原码 1000 0101 ...-5
反码 1111 1010
补码 1111 1011
运算 0000 0100 ...4
按位取反
<< 左位移运算 例子 5<<2
原码 0000 0011
低位补0
>> 右位移运算
高位补符号位
>>>无符号右移运算
反码 正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
补码 计算机中数值一律用补码来表示和存储
负数的补码在反码的基础上+1
正数的补码就是本身
在运算中,位运算后补码为正数的,就采用正数的规则 补码为负数的,就采用负数的规则
java运算,位运算
位运算 在计算机中都要用补码进行运算
^异或 例子 8^11 相同则为0 不相同则为1
源码 0000 1000 ...8
0000 1011 ...11
反码 0000 1000
0000 1011
补码 0000 1000
0000 1011
运算 0000 0011
反码 0000 0011
源码 0000 0011 ...3
&位与
两位都是1才是1
|位或
两位都是0才是0
~位非
~(-5)
原码 1000 0101 ...-5
反码 1111 1010
补码 1111 1011
运算 0000 0100 ...4
按位取反
<< 左位移运算 例子 5<<2
原码 0000 0011
低位补0
>> 右位移运算
高位补符号位
>>>无符号右移运算
高位补0
参考:http://blog.csdn.net/javazejian/article/details/51181320
https://www.cnblogs.com/yesiamhere/p/6675067.html
如有侵权请联系我,感谢以上分享者