失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 按位运算操作符底层实现原理

按位运算操作符底层实现原理

时间:2023-07-23 05:56:19

相关推荐

按位运算操作符底层实现原理

本篇文章给大家讲解编程软件中的运算符底层实现原理!

1.按位与运算&

按位与运算的底层运算过程如下

十进制:

3&5=1

二进制

0011&0101

= 0001

按位与运算就是将3的二进制上的每个bit位与5的二进制上的每个bit位比较如果两个bit位上的数相同则保留否则为0!

2.按位或运算|

按位或运算底层实现原理如下

十进制:

3|5=7

二进制:

0011|0101

= 0111

底层CPU执行过程:

如果bit位上的数为1则保留否则为0

3.按位异或运算

十进制:

3^5=6

二进制:

0011^0101

= 0110

底层CPU执行过程:

如果两个bit位上的数不同则保留为1相同则为0

4.取反运算符

十进制;

~5

二进制:

5: 0101

~: 1010(连同符号位一起取反)

~: 1101(在取反转换成负数的原码)

=: 1110(把低位进一)

1110=-6(得到-6)

底层CPU执行过程:

执行过程是先将5的二进制码取反运算包括符号位,然后在取反转换成负数的原码在末位的二进制数进一

5.位移运算符

十进制:

3<<2=12

二进制:

3: 0011

<<2

12: 1100

底层CPU执行过程:

位移运算是所有运算符里最容易理解的,左移(<<)两位就是将二进制上的bit位左移2位,这里说一个知识点,假如对0110这个二进制位右移4位会怎么样?答:右移四位则0000因为移动的位超出了寄存器的位数,如果移动的位数超出该二进制上的bit位最小或者最大那么这个位移的二进制数就会丢弃!

这些按位运算可以组合在一起用的,通常多数用在底层上操作特殊功能寄存器上的bit位!

比如

&|

3&|5

0011

0101

先做或运算

0011|0101

=0111

在做与运算

0111&0101

=0101

这样3上的bit位0011就变成了0101!

小知识:

&,|,~,^属于双目运算符,位移<<,>>属于单目运算符。

如果觉得《按位运算操作符底层实现原理》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。