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 来判断。

位运算应用及其注意事项相关推荐

  1. alin的学习之路:C语言篇(二)(指针注意事项,数据存储方式,位运算)

    @TOC(指针注意事项,数据存储方式,位运算) 1.空指针和野指针 不要操作野指针和空指针 空指针: 不要去操作空指针,对空指针指向的内存赋值等操作 void test01() {char* p = ...

  2. python中不同进制的整数之间可以直接运算_Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

  3. python 整数逆位运算_Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

  4. 【OpenCV 例程200篇】20. 图像的按位运算

    [OpenCV 例程200篇]20. 图像的按位运算 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 函数 cv2.b ...

  5. 【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)

    专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程200篇]20. 图 ...

  6. [GO语言基础] 四.算术运算、逻辑运算、赋值运算、位运算及编程练习

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Golang的 ...

  7. java取余位运算_java学习--高效的除模取余运算(n-1)hash

    没有测试过使用取余运算符和位运算符都做同一件事时的时间效率! 取余运算符% 如3除以2取余数 int a = a = a%; 结果为1 上面是传统的方式进行求余运算. 需要先将10进制转成2进制到内存 ...

  8. leetcode刷题笔记——剑指offer(二)[回溯、排序、位运算、数学、字符串]

    这里写目录标题 搜索与回溯 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树 ...

  9. python isodd()判断奇偶_位运算(1的个数;2.判断奇偶)

    1. 1的个数 int NumberOf1(intn){int count = 0;while(n) {++count; n=(n-1)&n; } } 同样一个问题,位运算可以提高程序的运行效 ...

最新文章

  1. 反转!BAT编程吸金榜来了,AI程序员刷爆了......
  2. 在Digital Ocean上的MongoDB
  3. 关于无服务器(Serverless)架构你要搞懂的8件事
  4. WebStorm2018配置nodejs
  5. dict()与{},list()与[]性能对比
  6. android studio日历小程序,android studio无法加载日历界面
  7. C++ 堆区内存分配
  8. 看完师兄的代码笔记,我失眠了
  9. CPU VS GPU笔记
  10. java 无锁框架_高性能无锁并发框架 Disruptor,太强了!
  11. 【Python】画图海龟
  12. [BZOJ] 1610: [Usaco2008 Feb]Line连线游戏
  13. Markdown图片并排展示、图注对齐
  14. 给定入栈序列,判断出栈序列是否合法
  15. 91.接收用户请求包体的方式
  16. easymock_EasyMock验证
  17. 一个事务复制的bug--更新丢失 续
  18. 多商户商城系统功能拆解01讲-产品架构
  19. 视频会议软件 Zoom会议客户端
  20. Mac 生成ico图标

热门文章

  1. php strip_tag 回车,详解PHP函数 strip_tags 处理字符串缺陷bug
  2. E9启动后无法打印日志
  3. Mysql对数据库操作的简单命令
  4. 骨架屏 (Skeleton Screen)
  5. dnf上海2服务器维护,DNF上海2出现大面积盗号并迅速蔓延请注意
  6. C++控制CPU核的使用
  7. jq的each方法之退出循环与继续循环
  8. CMD attrib命令详解
  9. SQL Server删除重复行的6个方法
  10. 160508Junit使用