您的位置:首页 > 其它

位运算符与其他

2021-03-06 23:41 866 查看

0x00  前言

  ----万般皆苦,唯有自渡;人生苦短,我亦朝阳

0x01  机器数--二进制数

机器数 数字在计算机中的二进制表示形式,且有对应的符号位
符号位 二进制数的最高位(第一位),且正数为0,负数为1。如00000110为6,10000110为-6
机器的字长

 机器内部设备一次能表示的二进制位数。

8bit=1Byte,即,字节的整数倍为字长,如8位、16位

真值

带符号位的机器数对应的真正数值。

如二进制数10000110的真值为为二进制的-0000110,或十进制的-6,而不是134

 

 0x02  原码,反码,补码等

  概念 使用
原码 符号位加上真值的绝对值 如-6的原码为10000110,8的原码为00001000
反码

正数的反码为其本身,即与原码相同;

负数的反码为原码的基础上, 符号位不变,其余各位取反(0和1互变)

如-6的反码为11111001;6的反码还是00000110
补码

正数的补码为其本身,即与原码相同;

负数的补码为其反码+1

数0的补码表示是唯一,即00000000

如-6的补码为11111010;8的补码还是00001000
总结

正数的原码、反码、补码相同;负数的如上

 
负数的补码转十进制

1、各位取反;2、转十进制;3、加符号,再-1

如11111010:1、00000101;    2、5;     3、-6

0x03  位运算符

表达式/声明 二进制数 备注
int a=6; 00000110 定义整型变量
int b=11; 00001011  
a&b 00000010 按位与。有0为0
a|b 00001111 按位或。有1为1
a^b 00001101 按位异或。不同为1
~a 11111001 取反。0和1互变
a>>2 00000001

a的二进制数都向右移2位。低位舍弃,高位:

a为正数时,最高位补0

a为负数时,最高位看编译系统是补0/1

a<<2 00011000 a的二进制数都向左移2位。高位丢弃,低位补0

0x02  编外

  ----内容为本人查阅资料理解,如有侵权,请及时联系本人

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: