bit-manipulation相关内容

用PHP反转变量中的所有位

我需要用PHP读取一个二进制文件,搜索一个位置,反转它们的位并处理结果. 当前我的代码如下: $ src_file ="firmware/shapeshifter_v2.02.jic";$ offset = 983195;如果($ src_handle = fopen($ src_file,"rb")){fseek($ src_handle,$ offset);$ src_content ..
发布时间:2021-04-15 19:57:00 PHP

使用按位运算符时javascript和python之间的结果不同

我正在尝试将一些js代码转换为python,并且在转换按位运算符时遇到麻烦.我已经在python中引入了 ctypes.c_int ,但结果仍然不匹配.对于js中的>>> ,我按照建议的此处使用 . > 我的(无效)代码的最小示例: JavaScript: let R = [7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,14, ..

使用1按位设置字节的所有位

我目前像这样将值硬编码为255 uint8_t outStates = 0xFF; 但是我有一个更干净使用的宏 #define TCA9555_LOW(1) 我想到的唯一方法就是这种方式,但是阅读效率低下且难看,hich不是我想要的 for(int i = 0; i ..
发布时间:2021-04-15 19:56:51 其他开发

在未对齐的字节边界上有效打包10位数据

我正在尝试对不与字节边界对齐的倍数进行一些位压缩.这就是我想做的. 我有一个512位数据数组(8个64位整数).在该数组内部是10位数据,对齐2个字节.我需要做的是将10位数据的512位降为320位(5个64位整数). 我可以想到手动的方法,即遍历512位数组的每个2字节节,屏蔽掉10位,或者将字节边界考虑在内,然后创建输出64-位整数.像这样的东西: void pack512to ..
发布时间:2021-04-15 19:56:48 C/C++开发

如果x> 0且r(x)= 2x,则实现有符号到无符号映射r(x)= 2x-1的更快方法是什么

可以使用二进制补码之类的常见技术将有符号整数映射到无符号整数.不幸的是,他们无法将较小的负整数映射为较小的数字.对于压缩算法,我们经常希望尽可能地保留数字的绝对值:小的负数和正数必须映射为小数. 如果x <0,则流行的映射是r(x)=-2x-1,如果x> = 0,则r(x)= 2x.(如果x 0,则相似度为2x + 1.) 天真地实施,此地图相对较慢.当然,它比仅将有符号整数转换为无符 ..
发布时间:2021-04-15 19:56:38 其他开发

如何在Java中复制javascript移位,按位操作,

我正在尝试在Java中复制javascript移位和按位操作的行为. 您以前曾经尝试过这样做吗,即使长时间使用,又如何可靠,一致地做到这一点? var i = [具有大整数的某些数组];for(var x = 0; x 您将如何将其放入Java? 解决方案 将位转换和加法运算从javascript转换为Java的一种方法是使用int强制转换隔离位转换运算的操作数,并隔离加法 ..
发布时间:2021-04-15 19:56:35 Java开发

联合的位字段用法

我想通过使用Union创建一个带有位字段的简单包.但是,当我尝试将"bit1"设置为1时,所有我的位字段都变为"1".我该如何解决此问题,我想使用联合而不是使用struct来完成位字段部分. 所以这是我的结构; 结构{联盟{uint8_t bit1:1;uint8_t bit2:1;uint8_t bit3:1;uint8_t bit4:1;uint8_t bit5:1;uint8_t b ..
发布时间:2021-04-15 19:56:29 其他开发

无符号8位整数的左移运算

我试图理解C/C ++中的移位运算符,但是它们给了我一个艰难的时刻. 我有一个无符号的8位整数,初始化为一个值,例如说1. uint8_t x = 1; 据我所知,它在内存中的表示方式类似于 | 0 | 0 | 0 | 0 | 0 || 0 ||| 0 || 1 | .现在,当我尝试将变量x保留16位时,我希望获得输出 0 .但是令我惊讶的是,我得到了 65536 .我肯定会缺少 ..
发布时间:2021-04-15 19:56:26 C/C++开发

在Go中将uint16强制转换为int16的正确方法

按位操作和Go新手:D我正在用Go从传感器读取一些数据,并以2个字节的形式获取它-假设 0xFFFE .也很容易将其转换为uint16,因为在Go中我们可以执行 uint16(0xFFFE),但是我需要将其转换为整数,因为传感器实际上返回的值范围是-32768到32767.现在我想“也许Go会很不错,如果我做 int16(0xFFFE),它将明白我想要什么?" ,但没有.我最终使用了以下解决方案( ..
发布时间:2021-04-15 19:56:23 其他开发

C#将int存储在字节数组中

我正在做一个小项目,我需要在字节数组中存储4个 int 类型(稍后将在套接字上发送). 这是代码: int a = 566;整数b = 1106;整数c = 649;整数d = 299;byte []个字节=新的字节[16];bytes [0] =(byte)(a>> 24);bytes [1] =(byte)(a>> 16);bytes [2] =(byte)(a>> 8);bytes ..
发布时间:2021-04-15 19:56:17 C#/.NET

如何确定一个数字中的所有设置位是否也都设置在另一个数字中?

给出2个长度相同的二进制字符串 a 和 b (例如 111000 和 110000 ),是否可以使用按位操作检查 b 中的所有设置位是否也在 a 中设置?在上面的示例中, b = 110000 在位置1和2(从左到右)中有两个设置位,这些位也都在 a = 111000 中设置./p> 我可以按字符比较两个字符串,但这太慢了.我知道我可以使用 Integer.parseInt(a,2); 之类的东 ..
发布时间:2021-04-15 19:56:14 Java开发

最小XOR值:给定一个由N个整数组成的整数数组A,请在数组中找到具有最小XOR值的一对整数

给定一个由N个整数组成的整数数组A,在数组中找到具有最小XOR值的一对整数这是蛮力解决方案,我们在其中找到所有可能的对,并计算XOR并找到每个对中的最小值: int minXOR(int arr [],int n){int min_xor = INT_MAX;//初始化结果//生成所有给定数组对对于(int i = 0; i ..
发布时间:2021-04-15 19:56:11 C/C++开发

Lisp循环遍历整数位的方式

假设我有一个整数,例如109,1101101,二进制.如何遍历此数字的位,例如:[64、32、8、4、1]?用Lisp做到这一点的一个好方法是什么?我应该通过添加大小写来稍微修改for宏还是应该将整数转换为位向量或列表? 解决方案 如果您只想处理"1",那么如果所有位很少,那么遍历所有位就没有效率.这是我在这种情况下要做的 (defmacro do-bits((var x)& rest ..
发布时间:2021-04-15 19:56:08 其他开发

位移和位掩码-示例代码

我遇到了一些代码,这些代码具有位掩码 0xff 和 0xff00 或16位二进制形式 00000000 11111111 和 11111111 00000000 . /***检查给定字符串是否为GZIP格式的函数.** @param inString要检查的字符串.* @return如果为GZIP压缩则为True,否则为false.*/公共静态布尔isStringCompressed(Strin ..
发布时间:2021-04-15 19:56:06 Java开发

按位替换两个数字的位

我很感兴趣如何使用按位运算将位间隔从数字X交换到数字Y. 例如,我有电话号码: X = 00000000Y = 00111111 positionStart,positionEnd 我想用相同位置的Y位替换X中的[positionStart,positionEnd]位. 解决方案 如果有掩码 m 指示要移动或交换的位,则可以这样移动它们: x = x ^((x ..
发布时间:2021-04-15 19:56:02 C/C++开发