1. bitwise_and() 函数对数组中整数的二进制形式执行位与运算。
  1. import numpy as np
  2.  
  3. print ('13 和 17 的二进制形式:')
  4. a,b = 13,17
  5. print (bin(a), bin(b))
  6. print ('\n')
  7.  
  8. print ('13 和 17 的位与:')
  9. print (np.bitwise_and(13, 17))

  1. bitwise_or()函数对数组中整数的二进制形式执行位或运算。
  1. import numpy as np
  2.  
  3. a,b = 13,17
  4. print ('13 和 17 的二进制形式:')
  5. print (bin(a), bin(b))
  6.  
  7. print ('13 和 17 的位或:')
  8. print (np.bitwise_or(13, 17))

  1. invert() 函数对数组中整数进行位取反运算,即 0 变成 11 变成 0
  2. 对于有符号整数,取该二进制数的补码,然后 +1。二进制数,最高位为0表示正数,最高位为 1 表示负数。
  3. 看看 ~1 的计算步骤:
  4. 1(这里叫:原码)转二进制 00000001
  5. 按位取反 11111110
  6. 发现符号位(即最高位)为1(表示负数),将除符号位之外的其他数字取反 10000001
  7. 末位加1取其补码 10000010
  8. 转换回十进制 -2

  1. import numpy as np
  2.  
  3. print ('13 的位反转,其中 ndarray 的 dtype 是 uint8:')
  4. print (np.invert(np.array([13], dtype = np.uint8)))
  5. print ('\n')
  6. # 比较 13 和 242 的二进制表示,我们发现了位的反转
  7.  
  8. print ('13 的二进制表示:')
  9. print (np.binary_repr(13, width = 8))
  10. print ('\n')
  11.  
  12. print ('242 的二进制表示:')
  13. print (np.binary_repr(242, width = 8))
  1. left_shift() 函数将数组元素的二进制形式向左移动到指定位置,右侧附加相等数量的 0
  2. import numpy as np
  3.  
  4. print ('将 10 左移两位:')
  5. print (np.left_shift(10,2))
  6. print ('\n')
  7.  
  8. print ('10 的二进制表示:')
  9. print (np.binary_repr(10, width = 8))
  10. print ('\n')
  11.  
  12. print ('40 的二进制表示:')
  13. print (np.binary_repr(40, width = 8))
  14. # '00001010' 中的两位移动到了左边,并在右边添加了两个 0。
  1. right_shift() 函数将数组元素的二进制形式向右移动到指定位置,左侧附加相等数量的 0
  2. import numpy as np
  3.  
  4. print ('将 40 右移两位:')
  5. print (np.right_shift(40,2))
  6. print ('\n')
  7.  
  8. print ('40 的二进制表示:')
  9. print (np.binary_repr(40, width = 8))
  10. print ('\n')
  11.  
  12. print ('10 的二进制表示:')
  13. print (np.binary_repr(10, width = 8))
  14. # '00001010' 中的两位移动到了右边,并在左边添加了两个 0。

吴裕雄--天生自然Numpy库学习笔记:NumPy 位运算的更多相关文章

  1. 吴裕雄--天生自然C++语言学习笔记:C++ 标准库

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  2. 吴裕雄--天生自然C++语言学习笔记:C++ STL 教程

    C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表.队列.栈. C++ 标准模板库的核心包括以 ...

  3. 吴裕雄--天生自然C++语言学习笔记:C++ Web 编程

    什么是 CGI? 公共网关接口(CGI),是一套标准,定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的. CGI 规范目前是由 NCSA 维护的,NCSA 定义 CGI 如下: 公共网关接 ...

  4. 吴裕雄--天生自然C++语言学习笔记:C++ 多线程

    多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序.一般情况下,两种类型的多任务处理:基于进程和基于线程. 基于进程的多任务处理是程序的并发执行. 基于线程的多任务处理 ...

  5. 吴裕雄--天生自然C++语言学习笔记:C++ 信号处理

    信号是由操作系统传给进程的中断,会提早终止一个程序.在 UNIX.LINUX.Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断. 有些信号不能被程序捕获,但是下表所列信 ...

  6. 吴裕雄--天生自然C++语言学习笔记:C++ 模板

    模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码. 模板是创建泛型类或函数的蓝图或公式.库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念. 每个容器都有一个单 ...

  7. 吴裕雄--天生自然C++语言学习笔记:C++ 命名空间

    假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等. 同样的情况也出现在 C++ 应用程 ...

  8. 吴裕雄--天生自然C++语言学习笔记:C++ 文件和流

    如何从文件读取流和向文件写入流.这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息. ifstr ...

  9. 吴裕雄--天生自然C++语言学习笔记:C++ 数据抽象

    数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节. 数据抽象是一种依赖于接口和实现分离的编程(设计)技术. 它们向外界提供了大量用于操作对象数据的公共方法,也 ...

  10. 吴裕雄--天生自然C++语言学习笔记:C++ 日期 & 时间

    C++ 标准库没有提供所谓的日期类型.C++ 继承了 C 语言用于日期和时间操作的结构和函数.为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件. 有四 ...

随机推荐

  1. [NLP]Transformer-XL论文解读

    关于Transformer的具体内容,可以访问:https://www.cnblogs.com/mj-selina/p/12369797.html 简介 Transformer是Google Brai ...

  2. Educational Codeforces Round 82 (Rated for Div. 2)E(DP,序列自动机)

    #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; ],t[]; int n,m; ][]; ...

  3. STA 开篇

    时序分析=动态时序分析+静态时序分析 动态时序分析简单讲就是gate-level simulation,仿真对象是netlist+sdf,通过SDF反标,得到gate跟net的delay,通过输入大量 ...

  4. maven一直加载2.0.0.M7 的 config server 失败

    之前学习的时候使用F版的SpringBoot管理项目依赖一直好好的,今天不知idea为何抽疯,一直加载失败,各种重启,清除,没用 只能像之前学习注册consul 时将F版的SpringBoot 改为G ...

  5. js无缝滚动跑马灯

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 联网调试DE1

    步骤:打开PUTTY,com3,串口,115200 重启开发板, 输入root, 输入   cd /mnt 输入    ifconfig 尝试一下自动分配网址:udhcpc 网络直连失败,原因占时不知 ...

  7. php 填写pdf 表单

    最近接到新的任务,要求把pdf的文档,编辑后发邮件 首先pdf表单提交,需要用到这个东西pdftk,GitHub地址:https://github.com/mikehaertl/php-pdftk 首 ...

  8. mybatis--Spring整合mybatis

    今天学习了mybatis整合Spring开发,做了一个mybatis+spring的小实例 (1)首先,创建数据库my,并在数据库my中创建表user create database my; use ...

  9. [PHP]新版的mongodb扩展安装和使用

    旧版的mongo扩展已经不推荐使用了,在php7以上一般是安装和使用新版的mongodb扩展 ubuntu下 apt-get install php-mongodb 例如下面的代码进行了查询和插入集合 ...

  10. Linux - 常用Shell软件

    tldr conda dstat htop oh-my-zsh https://github.com/nicolargo/glances neofetch