我想测试从数据文件中读取的字节是否为0xEE,我该怎么办?我试过if (aChar == 0xEE)
,但似乎没有工作。如何根据十六进制值测试一个字节?
回答
读取签名字符时,该值永远不会为0xEE。 IE:
#include <stdio.h>
int main()
{
char c = 0xEE; // assumes your implementation defines char as signed char
// c is now -18
if (c == 0xEE)
{
printf("Char c is 0xEE");
}
else
{
printf("Char c is NOT 0xEE");
}
}
的输出将是
Char c is NOT 0xEE
当读取符号字符,该值的范围从-0x7F为0x80。一个无符号的字符解释从0x00到0xFF,通常是你想要的“原始”字节。
变化:
char aChar;
到
unsigned char aChar;
,它应该工作。
应该指出,一个普通的老字符可以是有符号的或无符号的;这取决于实施。 – 2009-11-22 02:45:12
@Martin这是完整的语义。我知道你可以分配0xFF,但是如果一个有符号的char是0xFF,测试总是会失败。 – 2009-11-22 18:01:17
只是为了重申James McNellis,无论您的示例是否有效,它都取决于实现。 – rlbond 2009-11-22 18:10:59
使用字符常量将避免定义符号/无符号字符类型问题的任何实施:
if(aChar == '\xee')
- 1. 双字节十六进制值
- 2. 将4字节十六进制转换为十进制值
- 3. VB.Net - 将多字节十六进制值转换为十进制
- 4. printf C中最后一个十六进制值的字节
- 5. 转换十六进制字符串十六进制值
- 6. 将十六进制拆分为2个十六进制值
- 7. 十六进制值
- 8. 如何从十六进制值中提取低位字节?
- 9. 如何显示字节数组的十六进制值?
- 10. Python - 如何编辑字节的十六进制文件字节
- 11. C#功能:输入= INT十进制值,输出=字节的十六进制值
- 12. C#字符串为十六进制,十六进制到字节转换
- 13. 我需要测试一个字符串是否是十六进制值
- 14. 从串口读取十六进制数据阵列字节值
- 15. 如何将十六进制数据转换为字节在Delphi7
- 16. 如何与它十六进制数据,字符(或字节)转换为整数(十进制值)
- 17. NSString(十六进制)到字节
- 18. 将从1M字节为十六进制
- 19. 十六进制字节组串
- 20. 选择一个十六进制附近的十六进制数
- 21. 将32位十六进制值拆分为4个字节[QB64]
- 22. 如何8个字节十六进制转换为DateTime
- 23. 十六进制值的字符串格式为十六进制数字排序
- 24. 比较一个字节和十六进制
- 25. 转换一个十六进制字符的字节值在Java中
- 26. 如何以两位十六进制字符打印一个字节?
- 27. 添加十六进制值以得到十六进制结果
- 28. 如何十六进制转换为十六进制
- 29. 如何加入的十六进制值
- 30. 如何以十六进制打印值
这正是你如何测试一个字符,或任何其他数字类型,对一个十六进制值。什么不起作用?张贴一些源代码。 – 2009-11-22 02:39:18
aChar的类型是什么?它是一个指针吗? – 2009-11-22 02:40:28