这很简单,但我遇到了问题。 http://www.ipix.lt/images/90928843.png 我想计算缓冲区[5]。但不是符号值,而是 255。尝试将类型转换为 int 或 byte,但结果为 -1。
最佳答案
将它转换为 int 是正确的,你得到 -1,因为你实现中的 char
是一个有符号类型(如果 char
有符号,它实际上是实现定义的或未签名,通常您可以在编译器选项中更改它);您在调试器窗口中看到的是它的无符号表示。
要获得它的无符号值,您应该首先将其转换为 unsigned char
,然后转换为 unsigned int
(我认为您也可以将其转换为 unsigned int
,但我不确定)。
---编辑---
实际上在调试器窗口中我看到它的类型为 unsigned char
,所以我的回答的第一部分可能不适用...您应该告诉我们缓冲区是如何定义的。
关于c++ - 从 char 获取字节值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706284/