如何在 C 中对单个数字的所有位进行异或?

2024-01-04

有没有一种简单的方法将单个数字的所有位异或在一起,即 C 中的一元异或?

具有以下效果的东西:

result = ^(0x45); // ( 0 ^ 1 ^ 0 ^ 0 ^ 0 ^ 1 ^ 0 ^ 1 = 1)
result = ^(0x33); // ( 0 ^ 0 ^ 1 ^ 1 ^ 0 ^ 0 ^ 1 ^ 1 = 0)

GCC 为此内置了一个:

int xor_bits(unsigned x) {
    return __builtin_parity(x);
}

或者,您可以通过计算设置位的数量来计算奇偶校验。内置的 gcc 是__builtin_popcount():

int xor_bits(unsigned x) {
    return __builtin_popcount(x) & 1;
}

如果你只想坚持标准 C,https://graphics.stanford.edu/~seander/bithacks.html https://graphics.stanford.edu/~seander/bithacks.html and 如何计算 32 位整数中设置的位数? https://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer有一些很好的解决方案来计算设置位的数量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C 中对单个数字的所有位进行异或? 的相关文章

  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • 尝试了解使用服务打开对话框

    我已经阅读了有关使用 mvvm 模式打开对话框的讨论 我看过几个使用服务的示例 但我不明白所有部分如何组合在一起 我发布这个问题寻求指导 以了解我应该阅读哪些内容 以更好地理解我所缺少的内容 我将在下面发布我所拥有的内容 它确实有效 但从我
  • 使用 CMake 时如何导出 Emscripten 中的 C 函数

    In 本教程 https emscripten org docs porting connecting cpp and javascript Interacting with code html interacting with code
  • Grpc - 将消息从一个客户端发送到连接到同一服务器的另一个客户端

    是否可以将消息从一个客户端发送到连接到同一服务器的另一个客户端 我想将数据从一个客户端发送到服务器然后发送到特定客户端 我想我需要获取客户端 ID 但我不知道如何获取此 ID 以及如何从服务器将此消息发送到该客户端 我这里有一个样本 这是一
  • 循环遍历 C 结构中的元素以提取单个元素的值和数据类型

    我有一个要求 我有一个 C 语言的大结构 由大约 30 多个不同数据类型的不同元素组成 typedef struct type1 element1 type2 element2 type3 element3 type2 element4 1
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 模板外部链接?谁能解释一下吗?

    模板名称具有链接 3 5 非成员函数模板可以有内部链接 任何其他模板名称应具有外部链接 从具有内部链接的模板生成的实体与在其他翻译单元中生成的所有实体不同 我知道使用关键字的外部链接 extern C EX extern C templat
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • Visual Studio 2015:v120 与 v140?

    仅供参考 Win10 x64 我今天开始尝试 Visual Studio 2015 在弄清楚如何运行 C C 部分后 我尝试加载一个大型个人项目 该项目使用非官方的glsdk http glsdk sourceforge net docs
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable

随机推荐

  • 无法捕获 playwright 中的 response.json()

    我正在尝试使用 playwright 捕获 json 响应 我不断收到待处理的 Promise 但是 在 headless false 模式下 我可以看到数据正在被接收并填充在浏览器上 我刚刚开始玩Playwright 对 Promise
  • sqlite错误没有这样的列[重复]

    这个问题在这里已经有答案了 这里有人对这个错误有一些经验吗 仅当我使用 WHERE 子句时 才会出现此错误 我使用 php PDO 来获取结果 这是我的简单桌子 sql CREATE TABLE samenvatting stem id I
  • 输出/打印“可读”字典

    我正在准备一个api 并使用文档字符串作为文档 api 服务选择相关的 ApiClass 方法并连接每个文档字符串以创建文档 这样 程序开发人员和 API 用户都可以获得相同的文档 我的班级结构是这样的 API STATUS 1 some
  • Android:如何在设置背景可绘制时保持角半径?

  • 如何在 Vim 中使用“wildignore”?

    我在弄清楚语法时遇到了很多麻烦wildignoreVim 中的设置 假设我想要我的文件查找器插件 我使用Ctrlp http kien github com ctrlp vim 它使用wildignore 不搜索隐藏的文件和文件夹 即以 a
  • 如何删除树枝中数组的第一项?

    我在树枝中有一个名为 Posts 的数组 有没有办法轻松删除该数组的第一项 所以它的结构就像这样 array post 1 post 2 post 3 我想知道是否可以使用 twig 中的函数轻松删除第一篇文章 array post 2 p
  • 如何使表单的特定部分可滚动?

    我正在用 vb6 编写一个程序 要求我能够向右滚动屏幕的某个区域 它仅由线条和图片框组成 有没有办法只滚动该区域 谢谢 您可以利用以下事实 某些可视控件可以充当其他可视控件的容器 举个例子 在 VBIDE 中 放置一个Frame通过 VB
  • 对所有参数组合应用函数

    我希望能够将函数应用于一组输入参数的所有组合 我有一个可行的解决方案 如下 但如果没有更好 更通用的方法来执行此操作 例如 我会感到惊讶plyr 但到目前为止还没有发现任何东西 有更好的解决方案吗 Apply function FUN to
  • 固定内存OpenCL,有人成功使用过吗?

    我用的是CL MEM ALLOC HOST PTR与我的旗帜clCreateBuffer调用 但计算分析器将我的所有 主机内存传输类型 显示为可分页 我在两种不同的内核设置中尝试过它 但分析器不会显示我正在使用固定内存 当内核开始使用固定内
  • ICS 模拟器没有软件按钮吗?

    因此 我正在将我的应用程序从 3 0 更新到 4 0 但我遇到了模拟器问题 具体来说 软件按钮可以not使用 Galaxy Nexus ish 皮肤时会出现 我不确定它是否准确 但应该足够接近 这是WXGA720 它的值 Hardware
  • 将树状图与 Python 的 scipy.cluster.hierarchy 中的簇号进行匹配

    以下代码生成一个具有 10 个叶节点的简单层次聚类树状图 import scipy import scipy cluster hierarchy as sch import matplotlib pylab as plt X scipy r
  • Python tkinter画布闪烁

    首先 我应该声明 我知道该网站上还有其他名称相似的帖子 我已经经历过它们 但据我所知 它们并没有解决我的问题 实际上我想说我的问题比大多数例子要简单得多 简而言之 我想创建一个透明矩形 可以用来显示拖动选择区域 当我发现 tkinter 不
  • 我制作的相机效果不佳,为什么玩家移动速度比相机快?

    我制作了一个游戏 但是当我想添加相机来移动玩家时 它不起作用 玩家移动得比相机快并离开屏幕 我尝试从地形中移除玩家的大小 但没有任何效果 玩家仍然从屏幕中消失 这是我的代码 pygame init scsizeX 600 scsizeY 4
  • 为什么这个数字会加一? [复制]

    这个问题在这里已经有答案了 console log 10209761399365907 为什么此代码输出一个大一的数字 10209761399365908 而不是 10209761399365907 仅此特定号码才会发生这种情况 例如 使用
  • 在sql中按月份名称分组

    我有一张桌子 看起来像 id Item Quantity Amount created 1 Monitor 10 5000 2013 01 11 2 Keyboard 10 200 2013 02 19 3 Monitor 10 5000
  • 在 Scala 2.8 集合中,为什么在 Iterable 之上添加 Traversable 类型?

    我知道那是Traversable 你只需要有一个foreach方法 Iterable需要一个iterator method Scala 2 8 集合 SID 和 Fighting Bitrot with Types 论文基本上都没有提及为什
  • AMPL:对 cplex 使用“timelimit”选项后的结果是否满足所有约束?

    我有一个虚拟问题 我需要知道它的答案 我正在开发一个需要 AMPL 和 CPLEX 作为求解器的项目 现在这个问题一般需要140秒以上才能解决 当我搜索时 我进入了一个名为timelimit 我有价值地使用了这个选项option cplex
  • 类型错误:无法将 datetime.timedelta 与 float 进行比较

    我正在编写 python 脚本来计算开始日期和结束日期之间的持续时间格式 例如20140520160000 and 20140520170000这样我就能得到时间 我在使用这段代码时遇到了问题 if epgDuration gt 0 10
  • 如何正确使用php fopen()

    我正在学习 php 尝试使用fopen 功能 我正在编码的php文件位于这个目录中 domains xxxxx com au public html phpfile php我为要打开的文件指定什么路径 我正在查看的示例基于电脑上的服务器 其
  • 如何在 C 中对单个数字的所有位进行异或?

    有没有一种简单的方法将单个数字的所有位异或在一起 即 C 中的一元异或 具有以下效果的东西 result 0x45 0 1 0 0 0 1 0 1 1 result 0x33 0 0 1 1 0 0 1 1 0 GCC 为此内置了一个 in