bit-packing相关内容

如何从 8 个布尔值中创建一个字节(反之亦然)?

我有 8 个 bool 变量,我想将它们“合并"成一个字节. 有没有简单/首选的方法来做到这一点? 反过来,将一个字节解码为 8 个独立的布尔值怎么样? 我进来假设这不是一个不合理的问题,但由于我无法通过 Google 找到相关文档,这可能是另一种“你的直觉都错了"的案例. 解决方案 艰难的路: unsigned char ToByte(bool b[8]){无符号字符 ..
发布时间:2022-01-19 16:50:57 C/C++开发

打包位域时 VC++ 在做什么?

为了澄清我的问题,让我们从一个示例程序开始: #include #pragma 包(推,1)结构cc{无符号整数 a : 3;无符号整数 b : 16;无符号整数 c : 1;无符号整数 d : 1;无符号整数:1;无符号整数 f : 1;无符号整数 g : 1;无符号整数 h : 1;无符号整数 i : 6;无符号整数 j : 6;无符号整数 k : 4;无符号整数 l:15;};#pragm ..
发布时间:2021-12-22 18:36:10 C/C++开发

C++ 数据成员对齐和数组打包

在代码审查期间,我遇到了一些定义如下简单结构的代码: class foo {无符号字符 a;无符号字符 b;无符号字符 c;} 在其他地方,定义了这些对象的数组: foo listOfFoos[SOME_NUM]; 稍后,这些结构被原始复制到缓冲区中: memcpy(pBuff,listOfFoos,3*SOME_NUM); 此代码依赖于以下假设:a.) foo 的大小为 3,并且没有 ..
发布时间:2021-12-22 08:15:31 C/C++开发

如何覆盖 C 编译器将结构中的字大小变量对齐到字边界

我有一个指定如下的结构 成员 1,16 位 成员 2,32 位 成员 3,32 位 我将从文件中读取.我想直接从文件读入结构. 问题是 C 编译器会将变量 m1、m2 和 m3 与 32 位的字边界对齐,因为我正在为以下结构声明使用 ARM Cortex M3: typedef 结构体{uint16_t m1;uint32_t m2;uint32_t m3;}某物; 直接 ..
发布时间:2021-08-31 19:16:15 其他开发

如何从8个bool值中创建一个字节(反之亦然)?

我有8个bool变量,我想将它们“合并"为一个字节. 是否有一种简单/首选的方法来做到这一点? 反过来,将一个字节解码为8个独立的布尔值又如何呢? 我假设这不是一个不合理的问题,但是由于我无法通过Google找到相关文档,因此这可能是“您的直觉都不正确"的另一种情况. 解决方案 困难的方法: unsigned char ToByte(bool b[8]) { ..
发布时间:2020-09-21 05:15:15 C/C++开发

使用反射来确定.Net类型在内存中的布局方式

我正在尝试在C#中优化解析器组合器.当序列化的格式与内存中的格式匹配时,一种可能的优化方法是对一个实例甚至该类型的多个实例进行(不安全的)内存解析. 我想编写确定内存中格式是否与序列化格式匹配的代码,以便动态确定是否可以应用优化. (显然,这是一个不安全的优化,由于种种微妙的原因,它可能无法正常工作.我只是在做实验,而不打算在生产代码中使用它.) 我使用属性 [StructLayout ..
发布时间:2020-06-30 20:20:45 C#/.NET

jQuery SMS字符计算器,具有7位和16位

我有一个文本字段,可以用英文和中文键入短信.正如我搜索过的,1个短信只能有1120位.每个英文字符为7位,因此可以为1120/7 = 160个字符;对于中文,每个字符为16位,因此为1120/16 = 70个字符.我需要使用jquery来显示文字字段和文本字段下剩余的单词.我该怎么做呢? 解决方案 字符可以是单字节,双字节,三字节等.所以单字节遵循一个特定的范围.其他字符也是如此.基于此, ..
发布时间:2020-06-28 21:11:39 前端开发

如何在Python中打包任意位序列?

我想将一些二进制图像数据编码/压缩为序列(如果有位). (通常,此序列的长度不能完全符合整数的标准整数类型.) 如何在不浪费空间的情况下做到这一点? (我意识到,除非位序列的长度为"nice",否则在末尾总是必须有少量[ FWIW,我估计每个要编码的符号最多需要3位. Python是否有用于此类工作的内置工具? 解决方案 虽然内置的内容并不十分方便,但是有第三方模块,例如 bits ..
发布时间:2020-05-08 19:12:36 Python

如何在CUDA中打包位(有效地)?

我有一个字节数组,其中每个字节是0或1.现在我想把这些值装入位,使8个原始字节占用1个目标字节,原始字节0进入位0,字节1进入位1等。 到目前为止,我在内核中有以下内容: const uint16_t tid = threadIdx.x ; __shared__ uint8_t packing [cBlockSize]; // ...计算包装中的原始字节[tid] __s ..
发布时间:2017-03-05 15:18:12 C/C++开发

整数数组的位打包

我有一个整数数组,让我们假设他们是类型中的int64_t 。现在,我知道,只有每首每个整数n个位是有意义的(即,我知道他们是由一些边界限制)。 什么是数组转换中,所有不必要的空间被删除的方式(最有效的方式就是我在 A [0] ,第二个是第一个整数逐一 A [0] + n位等)? 我想它是一般尽可能多的,因为 N 会时常发生变化的时候,虽然我想有可能是特定的智能优化 N 象2或某事的权力。 当 ..
发布时间:2016-08-18 22:28:21 C/C++开发

包装2短裤成一个整型,处理消极和积极

我做的一类PackedUnsigned1616存储两个无符号短裤在一个int和存储两个有符号短裤在一个int类型的类PackedSigned1616。我读了关于位操作,但我仍然对如何处理与困惑签名和未签名,并且是短的范围或大或小的值(它们被传递两个整数)。下面是我到目前为止有: 公共final类PackedUnsigned1616 { 公众最终诠释场;私有静态最终诠释RIGHT =(2';&LT ..
发布时间:2016-08-07 19:54:06 Java开发

C#相当于Python的struct.pack的

是否有C#库,允许类似的功能Python的结构从的标准库? 一个可以与真正的对准结构颇有渊源模拟结构库。但我没有找到还没有任何办法直接控制在C#中的字节序的结构(C#中的结构似乎更适合于COM互操作,并减少对通用二进制包装)。 解决方案 该最接近的很可能是使用 ..
发布时间:2016-08-06 22:23:51 C#/.NET