问题标签 [uint32-t]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
956 浏览

c++ - 如何通过 wprintf 函数打印 uint32_t 变量值?

众所周知,要打印类型为固定宽度整数类型之一(如uint32_t)的变量的值,您需要包含cinttypes(在 C++ 中)或inttypes.h(在 C 中)头文件并使用格式说明符宏,如PRIu32. wprintf但是在使用函数时如何做同样的事情呢?在这种情况下,此类宏应扩展为带有L前缀的字符串文字。

0 投票
2 回答
1118 浏览

c++ - uint32_t 类型的 C++ 相等性不比较

我正在读取 RFID 卡并尝试比较 ID,因为一旦卡通过读卡器,读卡器实际上会多次读取它,所以我需要丢弃重复项。

更新:以下代码获取卡 ID

在 switch 语句的情况下,我正在测试标签是否相等,如下所示:

问题是,即使读卡器一次读取同一张卡 3 或 4 次,它们也永远不会相等,因此 tagCounter 正在计算被骗者。tag 和priorTag 都是uint32_t 类型,因此应该与== 相当,但它在这种情况下不起作用。

0 投票
1 回答
1195 浏览

python-3.x - 在 python 中:无法将具有 uint32_t、uint8_t、int16_t 值的变量转换为十六进制

我有一个 .ini 文件,其值如下

我无法将这些值转换为十六进制,如下评论:我可以使用 configparser 轻松读取 .ini 文件。假设我在变量 var 中有值作为字符串,我想将该字符串变量转换为十六进制形式

0 投票
2 回答
190 浏览

c++ - 为什么 uint32_t 的结果会自动变成八进制数?

当我使用 Visual Studio 2013 (C++) 时,我得到的结果为 64。

为什么这转向八进制而不是二进制?

0 投票
2 回答
2689 浏览

c - 何时应该在 C 中使用 UINT32_C()、INT32_C()、... 宏?

我在我的项目中切换到固定长度的整数类型主要是因为它们帮助我在使用它们时更清楚地考虑整数大小。包括它们 via#include <inttypes.h>还包括一堆其他宏,例如打印宏PRIu32,,PRIu64...

要将常量值分配给固定长度的变量,我可以使用 和 之类的UINT32_C()INT32_C()。每当我分配一个常数值时,我就开始使用它们。

这导致类似于以下的代码:

现在我看到了几个不关心这一点的例子。一种是stdbool.h包含文件:

bool我的机器上有 1 个字节的大小,所以它看起来不像int. 但是0and1应该是整数,应该由编译器自动转换为正确的类型。如果我在我的示例中使用它,代码会更容易阅读:

那么我什么时候应该使用固定长度的常量宏UINT32_C(),什么时候应该把这项工作留给编译器(我使用的是 GCC)?如果我用 MISRA C 编写代码会怎样?

0 投票
0 回答
91 浏览

c++ - 回到2013年的一个项目,我有很多“类型u_int32_t无法解析”

我在 2013 年使用 Gentoo Linux 下的 g++ v. 4.7.3 和使用 c++11 的 Eclipse Indigo 编译了我的项目。在这个项目中,我需要完美定义整数大小。所以,我使用了 u_int32_t、u_int8_t 类型。

今天,我有 Debian Jessie 下的 g++ v. 4.9.2,仍然使用 Eclipse Indigo。清理项目后,重建导致“类型 u_int32_t 无法解析”。

我的编译器选项:

我的第一次尝试是在正确的位置添加#include <cstdint>#include <stdint.h>(不推荐使用),但我得到了同样的错误。看来我必须到处u_int32_t替换。uint32_t

我已经搜索过:type "could not be resolved" "u_int32_t" "uint32_t"但什么也没找到。

另一种选择可能是使用与 2013 年相同版本的 g++ 和 libs 设置 Docker,但出于多种原因,我想迁移到最近的编译器和 libs。

我的结论是到处添加#include <cstdint>和替换。但我想确认一下正确的方法是什么?u_int32_tuint32_t

0 投票
1 回答
119 浏览

c - 将 C 4 字节字符串的值作为 uint 获取

简而言之,我的问题是:我正在构建一个动态内存管理器,其中包含各种不同类型的对象。我用标签标记每种不同类型的对象,并且为了使内存调试更容易,我希望这些标签在内存中显示为我可以读取的四字节字符串。但是,为了有效地打开这些值,我还想将它们视为无符号 32 位整数。

目前,对象的定义如下所示:

标签是四个字符串常量,例如:

我希望能够做到的是

但是当然你不能打开一个字符串。但是,由于这些是四字节字符串,它们可以在内存中作为 32 位无符号整数读取。我想要的是一个宏,给定一个字符串作为参数,返回一个无符号整数。我试过了

但它实际上所做的是将该地址处第一个字符的 ASCII 值作为数字返回 - 也就是说,

这是'F'的ASCII码。

有人帮我解决这个问题吗?自从我用 C 写任何严肃的东西以来,已经有 20 年了。

0 投票
2 回答
21861 浏览

c++ - 如何从 uint32_t 打印十六进制?

我一直在处理的代码要求我打印一个uint32_t十六进制类型的变量,填充为 0,最小长度为 8。到目前为止,我一直用来执行此操作的代码是:

其中 read_word 返回类型 uint32_t。我用过jx、llx等格式都无济于事,有没有正确的格式可以用?

编辑:

我发现问题在于我正在传递的内容。函数 read_word 从 uint32_t 向量返回一个值。似乎这是导致使用十六进制出现问题的问题。这是通过引用/值传递问题吗?解决方法是什么?

read_word 函数:

内存减速:

0 投票
0 回答
206 浏览

c++ - 使用 printf 打印带有向量的十六进制值时遇到问题

我的问题很简单:

read_word1 和 2 通过 show_address 返回要打印的值。read_word2 是我们想要的功能。但是,我们发现的问题是,当我们使用mem[address];从向量返回时 当我们将元素设置为 10(通过 write_word)时,read_word1 将打印0000000a,而 read_word2将打印。00000010

为了解决这个问题,我尝试使用 mem.at(address)、类型转换甚至转换为字符串,但都无济于事。向量mem定义为

在类头文件中。

这似乎是向量的一个潜在问题——可以做什么?

编辑:

谢谢大家的帮助。感觉这个话题被揭穿了一点。我无法让它以我认为的方式工作,但是如果你以十六进制传递一个数字,例如。000000aa 到 write_address 似乎一切正常!有点奇怪,但谢谢。

0 投票
1 回答
414 浏览

c - 在 C 二进制文件中将 int 编码并组合为 32 位 int

假设我有 2 个变量:

我想将这些组合并编码为 32 位无符号整数(uint32_t)。通过组合它们,它将是 2 个字节。然后我会用 2 个字节的 0 填充填充剩余空间。这是写入文件,因此需要这种特定类型的编码。

所以通过结合上面的示例变量,我需要的输出是: