• 位运算应用及其注意事项


    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 是否包含在集合中,只要查看 表示 2i 的位是否打开即可。

    例如,可将具有 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 来判断。

  • 相关阅读:
    JS 获取变量的类型
    安装C开发环境
    为jupyter添加conda中的kernel
    遗忘表达2
    分析css,flex布局
    异步编程, promise, settimeout, async, await
    react 项目分析
    css2
    Window10 安装MySQL8教程
    编辑docker容器中的文件
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423318.html
Copyright © 2020-2023  润新知