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