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

简介: 算法|仙游二进制,探访位运算

问题描述

数位的进制对于大家来说肯定都不是太陌生。在相关学科都有所涉及,像计算机网络,甚至是初高中的数学中,都或多或少的有所涉及。虽然,聪明的人类能够识别、处理各种进制的数值。可是笨笨的计算机却只能处理运算二进制的数,所以,二进制就是计算机的语言。要更好的操控计算机,编写程序,减少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)的一些运算。大致如下:

求和:

求差:

结语

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

目录
相关文章
|
2月前
|
算法
算法思想总结:位运算
算法思想总结:位运算
|
2月前
|
算法 Java C++
试题 算法训练 6-2递归求二进制表示位数
试题 算法训练 6-2递归求二进制表示位数
25 0
|
2月前
|
算法 Java
算法编程(十四):颠倒二进制位
算法编程(十四):颠倒二进制位
31 0
|
2月前
|
机器学习/深度学习 存储 算法
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
【算法基础】常数操作 时间复杂度 选择排序 冒泡排序 插入排序 位运算
|
6天前
|
存储 自然语言处理 算法
位运算入门及简单算法题的应用
位运算入门及简单算法题的应用
12 1
|
25天前
|
算法 Java Go
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
10 2
|
6天前
|
算法 Java
Java数据结构与算法:位运算之位移操作
Java数据结构与算法:位运算之位移操作
|
6天前
|
算法 Java
Java数据结构与算法:位运算之与、或、异或运算
Java数据结构与算法:位运算之与、或、异或运算
|
2月前
|
存储 算法 C++
算法:位运算
算法:位运算
22 2
|
2月前
|
算法
【免费】面向多微网网络结构设计的大规模二进制矩阵优化算法
【免费】面向多微网网络结构设计的大规模二进制矩阵优化算法