bitwise-operators相关内容

如何使用 &C#中的运算符?代码的翻译是否正确?

C++中的“if(arg2 & 1)"行(arg2是DWORD)等于C#中的“if(arg2 & 1==0)"(arg2是Uint32),对吧? 我正在尝试将函数从 C++ 转换为 C#,但出现错误: 运算符'&'不能应用于“uint"和“bool"类型的操作数 如果您能在整个函数中进一步了解任何其他错误,我也将不胜感激. C++ DWORD Func_X_4(DWORD arg ..
发布时间:2022-01-21 00:05:25 C#/.NET

为什么 -3==~2 在 C#

无法理解.为什么输出“相等" 代码: if (-3 == ~2)Console.WriteLine("等于");别的Console.WriteLine("不等于"); 输出: 等于 解决方案 因为 二进制补码位算术 就是这样 从维基百科页面抄袭并扩展: 大部分重要的位 6 5 4 3 2 1 0 值0 0 0 0 0 0 1 1 30 0 0 0 0 0 1 0 20 0 ..

C中条件语句中的位运算符和逻辑运算符有什么区别?

网上有很多问题是指按位运算符和逻辑运算符之间的区别.希望我已经做了一个很好的搜索,它们都没有专门研究在条件语句中使用它们是否相同,也没有专门参考 C 语言.大多数人提到 C++ 和 C#,我不知道相同的答案是否也适用于 C 语言. 这是我为测试发生的情况而编写的示例代码: //逻辑&&的区别和按位 &//#include #define TRUE 123>45#defin ..

在 C++ 中对布尔值使用位运算符

在 C++ 中是否有任何理由不使用位运算符 &、| 和 ^ 来表示“布尔"值? 我有时会遇到我希望两个条件之一为真(XOR)的情况,所以我只是将 ^ 运算符放入条件表达式中.我有时还希望评估条件的所有部分是否为真(而不是短路),所以我使用 &和|.有时我还需要累积布尔值,&= 和 |= 非常有用. 执行此操作时,我引起了一些人的注意,但代码仍然比其他情况下更有意义且更简洁.有什么理由不 ..
发布时间:2022-01-19 16:59:13 C/C++开发

& 和有什么区别和&&在 Java 中?

我一直以为Java中的&&操作符是用来验证它的布尔操作数是否为true和& 运算符用于对两种整数类型进行按位运算. 最近我知道&操作符也可以用来验证它的两个布尔操作数是否为true,唯一的区别是它甚至会检查RHS操作数如果 LHS 操作数为假. Java 中的 & 运算符是否在内部重载?或者这背后是否有其他概念? 解决方案 & ..
发布时间:2022-01-19 16:48:37 Java开发

您会使用 num%2 还是 num&1 来检查一个数字是否为偶数?

好吧,至少有两种低级方法可以确定给定数字是否为偶数: 1. if (num%2 == 0) {/* even */}2. if ((num&1) == 0) {/* 偶数 */} 我认为第二种选择更加优雅和有意义,这是我经常使用的一种.但这不仅仅是品味问题.实际性能可能会有所不同:通常按位运算(例如这里的逻辑与)比 mod(或 div)运算效率更高.当然,你可能会争辩说有些编译器无论如何都可 ..
发布时间:2022-01-17 09:48:05 C/C++开发

为什么按位“不是 1"?等于-2?

假设我们有 1 并且这个以 2 为底的数字是: 00000000000000000000000000000001 现在我想翻转所有位以获得以下结果: 11111111111111111111111111111110 据我所知,解决方案是使用~(按位NOT运算符)翻转所有位,但是~1的结果是-2: console.log(~1);//-2console.log((~1).toString( ..
发布时间:2022-01-17 09:33:18 前端开发

为什么移位 0 会截断小数点?

我最近发现了这段 JavaScript 代码: Math.random() * 0x1000000 我知道第一部分只是生成一个介于 0 和 0x1000000 (== 16777216) 之间的随机数. 但第二部分似乎很奇怪.执行位移 0 有什么意义?我不认为它会做任何事情.然而,经过进一步调查,我注意到移位 0 似乎 截断了数字的小数部分.此外,它是右移还是左移,甚至是无符号右移都无 ..

检查整数中是否只设置了一个位(无论其位置如何)

我使用 64 位整数中的位存储标志. 我想知道在 64 位整数中的位置是否设置了一个位(即我不关心任何特定位的位置). boolean isOneSingleBitSet (long integer64){返回 ....;} 我可以使用 Bit Twiddling Hacks 计算位数(肖恩·埃隆·安德森(Sean Eron Anderson)),但我想知道仅检测是否设置了一个位的最有效方法 ..
发布时间:2022-01-09 19:27:51 Java开发

C题:off_t(和其他有符号整数类型)的最小值和最大值

我偶尔会遇到一个整数类型(例如 POSIX 有符号整数类型 off_t),如果为它的最小值和最大值设置一个宏会很有帮助,但我不知道如何做一个真正便携的. 对于无符号整数类型,我一直认为这很简单.0 为最小值,~0 为最大值.我已经阅读了几个不同的 SO 线程,这些线程建议使用 -1 而不是 ~0 以实现可移植性.有一些争论的有趣线程在这里: c++ - 使用安全吗 -1 将所有位设置为真? ..
发布时间:2022-01-09 19:20:14 其他开发

按位运算符简单地翻转整数中的所有位?

我必须翻转整数二进制表示中的所有位.给定: 10101 输出应该是 01010 当与整数一起使用时,完成此操作的位运算符是什么?例如,如果我正在编写像 int flipBits(int n); 这样的方法,那么主体中会发生什么?我只需要翻转数字中已经存在的内容,而不是整数中的所有 32 位. 解决方案 ~ 一元运算符是按位取反.如果您需要的位数少于 int 中的位数,那么您需要在事 ..
发布时间:2022-01-09 19:15:03 Java开发

十进制转二进制

我有一个数字,我想在 C 中转换为二进制(从十进制). 我希望我的二进制始终为 5 位(十进制永远不会超过 31).我已经有一个通过除法手动完成的功能,但很难将其填充到 5 位. 有没有更简单的方法?也许使用按位移位? 我还希望二进制文件用 char * 表示 解决方案 这是一个优雅的解决方案: void getBin(int num, char *str){*(str+ ..
发布时间:2022-01-09 19:13:19 其他开发

获取“位";Python中的浮点数?

我正在寻找与 Java 的 Float.floatToBits 等效的 Python. 我发现了这个 Python:获取 &操纵(作为整数)浮点数的位模式,但有人知道不那么复杂的方法吗? 解决方案 Alex Martelli 在该问题中给出的答案非常简单——您可以将其简化为: >>>导入结构>>>>>>>>>def floatToBits(f):... s = struct.pac ..
发布时间:2022-01-09 10:54:15 Python

在C中将float转换为int(按位)

给定代表 IEEE 754 浮点数的 32 位,如何将数字转换为整数,在表示上使用整数或位操作(而不是使用机器指令或编译器操作进行转换)? 我有以下功能,但在某些情况下会失败: 输入:int x(包含 IEEE 754 格式的 32 位单精度数) if(x == 0) return x;无符号整数符号位 = 0;无符号整数 absX = (无符号整数)x;如果 (x 解决方案 ..
发布时间:2022-01-09 10:24:42 其他开发

如何对浮点数执行按位运算

我试过了: float a = 1.4123;a = a &(1<<3); 我收到一个编译器错误,提示 & 的操作数不能是浮点类型. 当我这样做时: float a = 1.4123;a = (int)a &(1<<3); 我让程序运行起来.唯一的一点是,按位运算是对四舍五入后得到的数字的整数表示进行的. 以下也是不允许的. float a = 1.4123;a = (voi ..

如何在 Lua 中使用按位运算符 XOR?

如何在 Lua 语言中实现按位运算符? 具体来说,我需要一个 XOR 运算符/方法. 解决方案 在 Lua 5.2 中,您可以使用 bit32 库中的函数. 在 Lua 5.3 中,bit32 库已过时,因为现在有原生的 按位运算符. print(3 & 5) -- 按位和print(3 | 5) -- 按位或print(3 ~ 5) -- 按位异或print(7 >> 1) - ..
发布时间:2021-12-30 20:18:37 其他开发

C++ 按位左移 32

目前我正在研究背包问题的蛮力算法.对于小问题实例,例如 15 个项目,一切都完美无缺.但是当我为 31 或 32 等更大的实例运行我的程序时,算法失败了.我遇到了按位移位的问题,我用它来计算可能的解决方案的数量.例如,对于 10 个项目,程序应该进行 2^10 次迭代,所以我使用了这个语句: unsigned long long int setCnt = (1 计算值 1024 是正确的.但 ..
发布时间:2021-12-30 17:54:25 其他开发