微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章


问题描述


数位的进制对于大家来说肯定都不是太陌生。在相关学科都有所涉及,像计算机网络,甚至是初高中的数学中,都或多或少的有所涉及。虽然,聪明的人类能够识别、处理各种进制的数值。可是笨笨的计算机却只能处理运算二进制的数,所以,二进制就是计算机的语言。要更好的操控计算机,编写程序,减少BUG,就要熟悉的运用位运算,提高运算效率。

所谓之仙游二进制,二进制你能轻而易举的读懂吗?反正我觉得是看着生疏。一大堆的二进制看着,就像是在看天庭的经文一般,故曰仙游其中。然而,位运算却能很好的解决二进制之间复杂转换的一些问题。如此的大佬,为何不去探访一二呢?用的好,或许就是解决某些问题的不二法门。

这篇文章,就简单的谈谈位运算,还是以Python中的位运算符为例,同时关于进制的转换问题,读者大可去百度,这里就不加赘述。为了更好的认识位运算,这里还是引述了来自百度百科的定义:位运算就是直接对整数在内存中的二进制位进行操作。

算法|仙游二进制,探访位运算_位运算符

(Python的位运算符)


解决方案


既然是运算过程,那么相应的运算符号是必不可少的。相信大家已经查看了上图,上图就是Python的位运算符。对于运算符这一块的知识,需要重点关注的其实就是,理解符号含义,能够正确的根据输入和符号,输出正确的值。表格中有每个符号相应的实例,方便读者理解。其中,与(&)运算、非(~)运算、或(|)运算、异或(^)运算是非常常用的几种。


  1. 1.  与:1与1相与是1,其余情况都为0。
  2. 2.  非:1变成0,0变成1,再进行计算。
  3. 3.  或:0与0相或是0,其余情况都为1。
  4. 4.  异或:相同为0,反之为1。

位运算的基础就是以上的这些运算符,至于位运算的运用还是非常广泛的,但时常容易被忽略。为了便于读者理解,我们用Python示例,简单的介绍整数(int)的一些运算。大致如下:

求和:

算法|仙游二进制,探访位运算_位运算符_02

求差:

算法|仙游二进制,探访位运算_位运算符_03


结语


这些示例都是很简单的一些问题,如果读者感兴趣,可以去看看“N皇后问题”,进行尝试。在尝试中,读者能够更好的理解和提升位运算的使用方法。




 where2go 团队




微信号:算法与编程之美          

算法|仙游二进制,探访位运算_位运算符_04


长按识别二维码关注我们!


“写留言”发表评论,期待您的参与!期待您的转发!