<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

全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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