bits相关内容

设置和清除C中的位

我在执行一些位操作的C程序时遇到了一些问题。在程序中,我使用一个无符号的long long int变量来表示一个64位地图,每一位代表地图上的一个位置。我需要能够更新这些位(位置),即设置或清除一个位。 为了清除和设置位,我这样做(0是最低有效位): map &= ~(1 ..
发布时间:2022-08-20 10:07:56 其他开发

如何获取第n位值

我是位移位和c++的新手。 假设我有一个uint8_t 00100100(36),我想检查是否设置了第3位。 以下是我现在如何做到这一点的代码,只需要一点时间。 uint8_t x = 36; if(x&1 ..
发布时间:2022-08-20 09:08:45 C/C++开发

在 Python 中进行位域操作的最佳方法是什么?

我正在通过 UDP 读取一些 MPEG 传输流协议,其中包含一些时髦的位域(例如长度为 13).我正在使用“struct"库进行广泛的拆包,但是有没有一种简单的方法可以说“抓住接下来的 13 位"而不是手动调整位操作?我想要类似于 C 处理位字段的方式(无需恢复为 C). 建议? 解决方案 这是一个经常被问到的问题.上面有一个 ASPN Cookbook 条目,过去曾为我服务过. ..
发布时间:2022-01-22 16:33:59 Python

256 如何存储在 char 变量和 unsigned char 中

最多 255,我可以理解整数是如何存储在 char 和 unsigned char 中的; #include主函数(){无符号字符 a = 256;printf("%d\n",a);返回(0);} 在上面的代码中,我为 unsigned char 和 char 输出了 0. 对于256我认为是代码中整数的存储方式(这只是猜测): 第一个 256 转换为二进制表示, ..
发布时间:2022-01-12 20:50:24 C/C++开发

可移植代码 - 每个字符的位数

我知道 C/C++ 标准只保证每个字符最少 8 位,理论上 9/16/42/其他任何东西都是可能的,因此所有关于编写可移植性的网站代码警告不要假设 8bpc.我的问题是这到底有多“不便携"? 让我解释一下.在我看来,系统分为 3 类: 计算机 - 我是指运行 Mac/Linux/Windows/Unix/*nix/posix/whatever 的台式机、笔记本电脑、服务器等(我知道这个 ..
发布时间:2022-01-12 20:21:53 C/C++开发

如何进行整数的两个补码乘法和除法?

我已阅读这篇关于使用两个补码进行二进制乘法的帖子.但对我来说不是很清楚.甚至我也很难理解关于此的 wiki 文章.我想知道如何计算负数的乘法: 例如:-1 和 -7 应该是 7.-1 的 4 位 2 的补码是:1111-7 的 4 位 2 的补码是:1001 一些逐步计算乘法的方法会有所帮助.我没有看到关于分裂的文章.如何解决这个问题? 解决方案 第 1 步:sign extend 两 ..
发布时间:2022-01-09 19:52:09 其他开发

n 位可以表示多少个值?

例如,如果n=9,那么9个二进制数字(位)可以表示多少个不同的值? 我的想法是,如果我将这 9 位中的每一个都设置为 1,那么我将使这 9 位能够表示的最大数字成为可能.因此,最大值是 1 1111 1111,它等于十进制的 511.因此,我得出结论,9位二进制可以代表511个不同的值. 我的思维过程正确吗?如果没有,有人可以解释一下我错过了什么吗?如何将其概括为 n 位? 解决 ..
发布时间:2022-01-09 19:33:18 其他开发

用于计数位或找到最右边|最左边的高效按位运算

给定一个无符号整数,我必须执行以下操作: 计算设置为 1 的位数 查找最左边 1 位的索引 查找最右边 1 位的索引 (操作不应依赖于架构). 我已经使用按位移位完成了此操作,但我必须遍历几乎所有位(es.32).例如,计数 1: 无符号整数= ...;而(数字!= 0){如果((数字和0x01)!= 0)++计数;数字>>=1;} 其他操作类似 所以我的问题是:有 ..
发布时间:2022-01-09 19:09:07 C/C++开发

生成所有长度为 n 且设置了 k 位的二进制字符串

找到所有包含 k 位集合的长度为 n 的二进制字符串的最佳算法是什么?例如,如果 n=4 和 k=3,则有... 0111101111011110 在给定任何 n 和任何 k 的情况下,我需要一种生成这些的好方法,所以我希望它使用字符串来完成. 解决方案 此方法将生成所有整数正好 N '1' 位. 来自 https://graphics.stanford.edu/~seander ..
发布时间:2022-01-09 19:00:32 其他开发

浮点位和严格的别名

我试图在不调用未定义行为的情况下从浮点数中提取位.这是我的第一次尝试: 无符号 foo(float x){无符号* u = (无符号*)&x;返回 *u;} 据我了解,由于严格的别名规则,这不能保证有效,对吧?如果使用字符指针进行中间步骤,它是否有效? 无符号条形(float x){char* c = (char*)&x;无符号* u = (无符号*)c;返回 *u;} 还是我必须自己提取 ..
发布时间:2022-01-09 10:40:51 C/C++开发

在 UInt32 中计算设置位的最快方法是什么

在不使用查找表的情况下,计算 UInt32 中设置位的数量(即计算 1 的数量)的最快方法是什么?有没有办法计算O(1)? 解决方案 与以下内容重复:how-to-implement-bitcount-using-only-bitwise-operators或者最佳算法-计算 32 位整数中的集合位数 这个问题有很多解决方案.我使用的是: int NumberOfSetBits( ..
发布时间:2021-12-30 15:52:17 C#/.NET

如何在c中打印内存位

我正在学习如何在内存中表示数字.我想知道如何在某些 int 和 float 变量的内存中打印实际表示(二进制或十六进制). 例如,我想看看当这些数字相加或相减会导致溢出时会发生什么. 如何访问内存并打印它? 解决方案 您需要将指向相关变量的指针分配给 char *,并将其视为字节数组长度 sizeof(variable).然后,您可以使用 %X 格式说明符将每个字节以十六进制打 ..
发布时间:2021-12-21 09:56:10 其他开发

生成所有长度为 n 的二进制字符串,设置 k 位

找到所有包含 k 位集的长度为 n 的二进制字符串的最佳算法是什么?例如,如果 n=4 且 k=3,则有... 0111101111011110 我需要一种给定任何 n 和任何 k 的好方法来生成这些,所以我更喜欢用字符串来完成. 解决方案 此方法将生成恰好为 N '1' 位的所有整数. 来自 https://graphics.stanford.edu/~seander/bith ..
发布时间:2021-12-06 19:36:04 其他开发

获取 64 位整数内的位位置数组

好吧,听起来可能有点复杂,但这就是我想要做的: 以例如10101010101 并返回 { 0, 2, 4, 6, 8, 10 } - 一个包含所有已设置位位置的数组 这是我的代码: UINT DQBitboard::firstBit(U64 bitboard){static const int index64[64] = {63, 0, 58, 1, 59, 47, 53, 2,6 ..
发布时间:2021-11-25 05:48:57 C/C++开发

64 位应用程序启动 32 位进程

我正在开发一个使用 .Net 4.0、C# 编码的 64 位应用程序. 在这个应用程序中,在某些时候,我需要使用以下代码启动另一个 exe 文件: l_process.StartInfo.FileName = _sFullFilePath;l_process.StartInfo.Verb = "打开";l_process.StartInfo.CreateNoWindow = true;l_ ..
发布时间:2021-11-25 00:19:07 C#/.NET

计算C中的浮点的epsilon

我必须使用位/整数运算来找出C中给定值的epsilon.根据位模式,我知道计算下一个邻居需要增加尾数,如果溢出,则要增加指数-但我不确定从哪里开始计算ε. 我无法使用浮点数学运算-因此,我需要直接生成位模式.这使操作变得棘手,因为我无法减去. 这是我的理解(基于我在SO上所做的一些研究):范围随着​​数字的增加而明显变化,但我不确定如何使用 FLT_EPSILON生成正确的数字.对于2 ..
发布时间:2021-04-15 19:50:14 其他开发

标题块中的MIDI分区

MIDI标头块的最后一个字指定分隔.它包含有关增量时间应解释为每四分音符的滴答声还是每帧的滴答声(其中帧是一秒的细分)的信息.如果设置了该字的第15位,则信息以每帧的滴答度为单位.接下来的7位(第14位到第8位)指定每秒的帧数,并且可以包含以下四个值之一:-24,-25,-29或-30.(它们是负面的) 有人知道位15是否计入该负值?所以问题是,指定fps的值实际上是8位长(15到8)还是7 ..
发布时间:2021-04-15 19:50:08 其他开发

将位串转换为32位有符号整数会产生错误的结果

我正在尝试解决此网站上的挑战.除了我无法正确地将位字符串转换为其32位带符号整数表示形式之外,我的所有设置都是正确的. 例如,我有这个位串: block ='10101010001000101110101000101110' 我自己将此位串转换为32位带符号整数的方式:我从学校中部分记得第一位是符号位.如果为1,则我们为负数,反之亦然. 当我这样做时,它给我以10为底的数字.它 ..
发布时间:2021-04-15 19:49:43 Python

PHP:带符号的二进制字符串

将二进制字符串转换为有符号整数时遇到问题 如果您调用decbin('-40'),则php将输出1111111111111111111111111111111111111111111111111111111111011000 但是,如果您调用bindec(decbin('-40')),它将输出1.84467440737E + 19(或类似的东西,显然不是-40),因为它“将最高有效位视为 ..
发布时间:2021-04-15 19:49:40 PHP

解析Yann LeCun的MNIST IDX文件格式

我想了解如何打开此版本的MNIST数据集.例如,训练集标签文件 train-labels-idx1-ubyte 定义为: 培训设置标签文件(train-labels-idx1-ubyte):[偏移量] [类型] [值] [描述]0000 32位整数0x00000801(2049)幻数(MSB优先)0004 32位整数60000个项目0008无符号字节标签0009无符号字节标签........xx ..
发布时间:2021-04-15 19:31:32 Python