码迷,mamicode.com
首页 > 其他好文 > 详细

按位运算符探讨

时间:2016-09-03 00:59:50      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

  之前一直没搞懂这个怎么计算的,主要也因为之前没怎么用到过这个,但现在想把它搞懂,所以索性一次性搞懂为妙,以后就不用再纠结了哈。

按位运算符就是把数字看作二进制来进行计算的,并且再把计算出来的二进制给它转换成十进制,也就是最终的结果了。

 

比如:

   7&9

这个是按位与,先不讨论与不与的,总之它现在会把7和9转换成二进制,接下来我们将7和9转换成2进制,这里我用python。

技术分享

如果你看不懂这段代码没有关系,因为这里的重点不是讲python,而是按位运算符,这里我们可以看到7的二进制为111,而9的二进制为1001。明显可以看出7和9的二进制长度不一样,如果长度不一样的话,短的那个前面会自动补0。结果就成了这样:

 

7:0111

9:1001

前面说了所谓的按位运算符就是比较两个数的二进制,那么怎么比较呢,是这样的,如果是按位与那么就比较两个数是不是都为1如果是就是1否则为0,看下面。

 

比如第一个7:0 ,第一个9:1那么它们就为0,只要其中有一个是0那么它就是零,当然这是对于按位于来说的。

 

整体比较如下:

7:0 1 1 1

9:1 0 0 1

结果:0 0 0 1

那么结果二进制就成了0001了,那么二进制0001再转换成十进制就是1,自然7&9结果就是1。

我们可以用下面的工具来帮我们转换。

技术分享

 

其他的东西都不要问我,我只说按位运算符,因为其他我啥也不懂,至于转换来转换去,我也是百度了一下的,但我的目的达到了,因为我不是来学进制转换的,有一句话说的很好,不忘初心,方得始终。这也是一种学习方式,以前我学习老爱纠结这些,所以一直就学不好,因为有些根本就不是你现在该考虑的,你要明确自己学这个干嘛。

 

那么按位或,按位非,按位取反,自然也是一个道理,不过是比较的时候换种花样罢了,再拿按位或来演示一下。

按位或

5|6

转换2进制:

技术分享

5:101

6:110

只要有1就是1

结果:111 这是二进制 再转一下就是7.

技术分享

ok了,这是一次很愉快的过程,目的达到了哈,按位运算可以告一段落了。

 

按位运算符探讨

标签:

原文地址:http://www.cnblogs.com/pssp/p/5836018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!