位集二进制 AND 运算

2024-01-06

我写了以下几行:

std::bitset<4> bitvec;  //bitset 0000
std::bitset<4> addition; //bitset 0000

addition.set(0); //setting the least significant bit

std::cout << addition << std::endl; //output 0001
std::cout << std::endl;

for(int x = 0; x != 16; ++x) { //addition loop
    std::cout << bitvec << std::endl; //output
    bitvec &= addition; //binary AND
}

std::cout << std::endl;

我预计输出是:

0000
0001
0010
0011
0100
0101
....

但循环只输出“0000”。我缺少什么基本概念?


逻辑与是not添加。

具体来说,

  0000
& 0001
------
= 0000

这解释了为什么你总是得到0000.

逻辑与仅查看两个位集中的每一位,并且仅当该位在其他两个向量中均为 1 时才输出 1。举个例子:

  1001
& 1100
------
= 1000

第一位为 1 的原因是因为其他位集中的第一位为 1。其余位为 0,因为其中一个位集在该位置有 0。

如果您想要加法,请不要使用位集,而只需使用加法。

unsigned long a = 0;

for (int i = 0; i < 16; ++i)
{
    std::cout << std::bitset<4>(a) << std::endl;
    ++a;
}

Output http://ideone.com/txuY8:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

位集二进制 AND 运算 的相关文章

随机推荐

  • 一旦满足条件,如何突破 foreach?

    我遇到一种情况 在处理一个对象时 我通常使用 foreach 来循环它 如下所示 foreach main object as key gt small object 但是 我需要在那里放置一个条件 如下所示 foreach main ob
  • 保证 char、wchar_t、char16_t、char32_t 的大小排序

    C 标准是否对大小 以字节为单位 的排序提供任何保证 char wchar t char16 t char32 t 欢迎任何标准摘录 例如 我是否可以保证 sizeof char lt sizeof wchar t lt sizeof ch
  • WCF 双工通道:检查回调通道是否仍然可用

    我有以下问题 我正在写聊天软件 客户端 服务器机制基于WCF的DualHttpBinding 这意味着 如果用户发送消息 则服务器会通知发送该消息的房间中的所有客户端 我想确保 如果客户端的应用程序崩溃 无论什么原因 客户端对象将从房间列表
  • AWS Elastic Beanstalk Namecheap SSL 配置

    我的 iOS 软件平台在 AWS Elastic Beanstalk 上运行 并具有一个我们称为 something elasticbeanstalk com 的 URL 我有一个网站 我们称之为 website com 我通过 Namec
  • 如何使用 EF6 在 C# 模型中创建多列“引用”索引(连接索引)

    我知道如何在 C 中创建常见的多列索引 它是数据库中的映射表 但我在多列索引上遇到一个具体问题 代码如下 public class Table1 Index MultipleIndexColumn 1 public Table2 Table
  • AsyncTask 和 Firebase

    我正在尝试使用 RecyclerView 加载 ListView 但只有进度条正在加载 并且列表未显示 我在 AsyncTask 类中使用 Firebase 我哪里出错了 下面是我的代码 public class MainActivity
  • 将文件写入 Google Cloud Storage 时出现 IO 异常

    我正在尝试将文件从 Google App Engine 写入 Google Cloud 并且使用后端来处理将一堆文件写入 Google Cloud 存储的请求 但似乎我在大约 5 分钟内收到 IOException 我尝试了不同的文件大小
  • Visual Studio 2012/2013 缓慢的“列表成员”智能感知

    我正在使用 Visual Studio 2012 Premium Update 3 ReSharper 8 在 VB Net 中进行编码 我已停用 ReSharper 智能感知 并且正在使用标准 VS 智能感知 一段时间以来 我一直遇到严重
  • 圆弧补丁之间的填充 - Matplotlib

    我有一个ellipse我想要solid fill不同部分的颜色 为了实现这一目标 我正在使用arcs补丁 我目前正在画多个arcs并使用zorder重叠适当的arcs 主要问题是我无法扎实地填补arc补丁并且它们没有整齐地填充ellipse
  • 角度6错误ReferenceError:“进程未定义”与elasticsearch js

    在一切之前 我读到 关于流程的问题1未定义 https stackoverflow com questions 48325449 referenceerror process is not defined error in heroku a
  • 调试测试,需要建议

    作为面试的一部分 我正在进行调试测试 当我面对一个大型代码库并且必须在一两个小时内找到其中的错误时 我想是否有人可以帮助解决该方法 成为 Eclipse 3 2 上基于核心 java 的应用程序 我猜 面试官可能关注的答案是 你的总体策略是
  • Django UserProfiles 中的 user_id 列不唯一

    我试图通过 Django 中的用户配置文件 1 2 5 Ubuntu natty 中提供的版本 向用户添加一些额外的属性 但是每当我通过管理控制台创建新用户时 都会使用新用户之一包含属性 例如 电话 时 我收到 列 user id 不唯一
  • FBSDKCoreKit 项目错误

    我将 cocoa pods 更新到 0 38 1 现在 FBSDKCoreKit 出现问题 当应用程序启动时 它停止在启动屏幕上并出现错误 dyld Library not loaded rpath FBSDKCoreKit framewo
  • 将 Boost Serialization 与 xml_oarchive 一起使用时,assertion_failed

    编译Boost Serialization的简单测试时 class Test protected int Num friend class boost serialization access template
  • 使用 matplotlib 绘图时,如何避免 PyCharm 控制台崩溃“警告:QApplication 未在 main() 线程中创建”?

    在 PyCharm 中 当我尝试使用其交互式控制台绘制某些内容时 例如 In 2 from matplotlib pyplot import In 3 x range 5 In 4 y range 5 10 In 5 plot x y WA
  • 在 Clojure 中执行动态绑定函数

    我想在数据结构中预先存储一堆函数调用 然后从另一个函数中评估 执行它们 对于在命名空间级别定义的函数 这按计划工作defn 即使函数定义是在我创建数据结构之后出现的 但不适用于由let name fn or letfn函数内部 这是我的一个
  • Perl 扩展安装 - 无法运行 nmake

    我正在尝试在 XAMPP 上使用 cpan 安装模块 我运行的是 Windows 7 出现此提示后立即 CPAN pm 要构建 J JE JESSE HTTP Server Simple 0 43 tar gz 提示 未找到所需的nmake
  • Django 部署 Heroku 错误 500 Debug = False

    注 如果Debug True它运行得很好 我正在尝试部署我的 django 应用程序 我使用的主要工具我不知道是否需要特殊配置 Stripe 付款方式 但它不在我的索引页中 所以不应该是因为它 Mailgun 但我在我的设置中评论了 我也没
  • Delphi 中的 Vista 语音识别

    我希望能够使用 Microsoft Vista 的语音识别功能对我的 Delphi 应用程序进行口授 然而 当尝试听写 TMemo 时 它根本不起作用 我注意到 Firefox 3 0 也有同样的问题 在他们联系微软解决这个问题后 他们告诉
  • 位集二进制 AND 运算

    我写了以下几行 std bitset lt 4 gt bitvec bitset 0000 std bitset lt 4 gt addition bitset 0000 addition set 0 setting the least s