c - 如何用十六进制表示负 char 值?

标签 c char hex signedness

下面的代码

char buffer[BSIZE];
...
if(buffer[0]==0xef)
...

向编译器发出警告“由于数据类型的范围有限,比较总是错误的”。 当我将支票更改为

if(buffer[0]==0xffffffef)

这感觉非常违反直觉。根据十六进制的特定字节值检查 char 的正确方法是什么? (除了使其无符号)

最佳答案

有什么问题:

if (buffer[0] == '\xef')

?

关于c - 如何用十六进制表示负 char 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6647100/

相关文章:

c - C编程While循环不起作用

c - 为什么这段代码会出现段错误? (指针运算)

Python - 将十六进制转换为 INT/CHAR

Python程序解释: Decimal to hex

bash - 如何在不转换为字符串的情况下使用大的十六进制值?

c - 矩阵乘法无法编译

c - mktime 没有转换为正确的日期,为什么?

c - 如何从 zlib 流中读取任意字节?

c - getchar_unlocked() 如何工作?

delphi - Delphi 2007 和 XE3 中的差分函数 Char/Chr