<span>原码反码补码</span>

无符号数和有符号数

无符号数:所有位都用于表示数的大小

有符号数:最高位是符号位(1表示负数,0表示正数),其余位表示数值大小

编码规则

有符号数的编码规则

原码:最高位是符号位,对其他的位进行本身的绝对值
反码:

  • 正数:反码和原码相同
  • 负数:符号位一定是1,其余位是对原码取反

补码:

  • 正数:反码和原码相同
  • 负数:符号位一定是1,其余位为反码加1
//正数
1
//原码 0000 0001
//反码 0000 0001
//补码 0000 0001
//负数
-1
//原码 1000 0001
//反码 1111 1110
//补码 1111 1111
-7
//原码 1000 0111
//反码 1111 1000
//补码 1111 1001

位运算

与运算(and &)

或运算(or |)

异或运算(xor ^)

相反为1,相同为0

非运算(not ~)


左移:(shl<<)

所有二进制位全部左移若干位,高位丢弃,低位补0

0000 0001
左移:
0000 0010

右移:(shr>>)

所有二进制位全部右移若干位,低位丢弃,高位补0或1(由符号位决定)

0000 0001
右移:
0000 0000

位运算的加减乘除

加法:

4 + 5

减法:

4 - 5

将减法转换为加法,负数用补码表示

(-5) --> 原码:1000 0101 --> 反码 :1111 1010 -->补码 :1111 1011

乘法:

x*y --> y个x相加

除法:

x/y --> x可以减去多少y

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:16
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务