位运算应用及其注意事项
1. 可能发生的溢出
使用 64 位整数时发生的溢出。试编写代码,使其能够确认无符号的 64 位整数的位掩码(bitmask)a 的第 b 位(从右向左数)是否已经打开。
bool isBitSet(unsigned long long a, int b) {return a & (1 << b) > 0; }
注意,在 C++ 中,1 会定义为有符号的 32 位整数,当 b 超过 32 时,(1<
2. 使用位掩码实现集合及其操作
集合的操作是位掩码的最重要的应用范围。这种应用中,N 位整数,可以拥有 0 到 N-1 个整数元素的集合。要判断某个元素 i 是否包含在集合中,只要查看 表示 2i2^i 的位是否打开即可。
例如,可将具有 6 个元素的集合 {1, 4, 5, 6, 7, 9} 的整数 754 表示如下:
- 2^1+2^4+2^5+2^6+2^7+2^9 = 754
如我们需要判断 7 这个元素是否在集合中,则可通过,(1 << 7) & 754 的结果是否大于 0 来判断。
位运算应用及其注意事项相关推荐
- alin的学习之路:C语言篇(二)(指针注意事项,数据存储方式,位运算)
@TOC(指针注意事项,数据存储方式,位运算) 1.空指针和野指针 不要操作野指针和空指针 空指针: 不要去操作空指针,对空指针指向的内存赋值等操作 void test01() {char* p = ...
- python中不同进制的整数之间可以直接运算_Python 进制转换、位运算
一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...
- python 整数逆位运算_Python 进制转换、位运算
一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...
- 【OpenCV 例程200篇】20. 图像的按位运算
[OpenCV 例程200篇]20. 图像的按位运算 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 函数 cv2.b ...
- 【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)
专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程200篇]20. 图 ...
- [GO语言基础] 四.算术运算、逻辑运算、赋值运算、位运算及编程练习
作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Golang的 ...
- java取余位运算_java学习--高效的除模取余运算(n-1)hash
没有测试过使用取余运算符和位运算符都做同一件事时的时间效率! 取余运算符% 如3除以2取余数 int a = a = a%; 结果为1 上面是传统的方式进行求余运算. 需要先将10进制转成2进制到内存 ...
- leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]
这里写目录标题 搜索与回溯 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树 ...
- python isodd()判断奇偶_位运算(1的个数;2.判断奇偶)
1. 1的个数 int NumberOf1(intn){int count = 0;while(n) {++count; n=(n-1)&n; } } 同样一个问题,位运算可以提高程序的运行效 ...
最新文章
- 反转!BAT编程吸金榜来了,AI程序员刷爆了......
- 在Digital Ocean上的MongoDB
- 关于无服务器(Serverless)架构你要搞懂的8件事
- WebStorm2018配置nodejs
- dict()与{},list()与[]性能对比
- android studio日历小程序,android studio无法加载日历界面
- C++ 堆区内存分配
- 看完师兄的代码笔记,我失眠了
- CPU VS GPU笔记
- java 无锁框架_高性能无锁并发框架 Disruptor,太强了!
- 【Python】画图海龟
- [BZOJ] 1610: [Usaco2008 Feb]Line连线游戏
- Markdown图片并排展示、图注对齐
- 给定入栈序列,判断出栈序列是否合法
- 91.接收用户请求包体的方式
- easymock_EasyMock验证
- 一个事务复制的bug--更新丢失 续
- 多商户商城系统功能拆解01讲-产品架构
- 视频会议软件 Zoom会议客户端
- Mac 生成ico图标