- 博客(1)
- 收藏
- 关注
原创 二进制位操作
思路:x*3用x+=(x<<1)来表示,不考虑溢出的情况,但要考虑朝零方向取整,也就是除2后的数要舍去余数,-5/2=-2,5/2=2,而对于>>1,不一定是除2,因为>>1是舍掉了lsb(最低有效位),然后将剩下的除2,对于奇数,相当于减1后除2,而对于正数是没问题的,但对于负数,如:-3(2^32-3),就是(2^32-4)/2+2^31=2^32-2,就是说-3>>1=-2,显然不符合要求,故需对负奇数>>1后的结果加1。OF=1就溢出,溢出返回0,用!除此外,右移运算符,还会使最低有效位被丢掉。
2023-11-23 09:01:00 96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人