【发布时间】:2018-02-04 06:25:06
【问题描述】:
在 c++ 中给定一个 0x80 的十六进制值(作为 uint16_t 提供),我将如何将这些数字提取到一个 int 变量中。我不想将十六进制转换为 int,而是想将数字提取为 int,例如,对于 0x80,我想要一个 80 的 int,而不是 128,或者对于 0x55,我想要 55 而不是 85,等等。
uint16_t hex = 0x80;
uint8_t val = ???; // Needs to be 80
只有十六进制数字的数字永远不会出现。 IE。输入将仅包含十进制数字。
例如。 0x08、0x09、0x10、0x11、0x12等
【问题讨论】:
-
至少您需要显示保存十六进制值的变量。是std::string,是char数组还是......。如果你到目前为止已经完成了任何代码,请发布它。
-
请尽可能多地显示minimal reproducible example。 IE。显示输入是如何到达的以及将结果放在哪里。
-
0xaa 将被表示为什么?你也知道十六进制位数的上限吗?
-
这永远不会发生,将提供变量,如 0x08、0x09、0x10、0x11、0x12 等
-
@MattBrailsford 你应该改进你的问题标题,这完全是误导。二进制编码的十进制,是您所追求的正确术语。