将变量与大十六进制数进行比较

Comparing variable to large hex number

本文关键字:比较 十六进制数 变量      更新时间:2023-10-16

我正在从文件中读取原始二进制文件,并想检查该数字是否0xFFFFFFFF .

#define LAST 0xFFFFFFFF
unsigned long data;
//...give value to data
if(data == LAST)

这给出的结果与LAST定义为42949672950xFFFFFFFF的无符号基数 10 表示不同。但是我注意到如果用-1替换0xFFFFFFFF,则给出了正确的结果。这是为什么呢?

你可以做几件事。我把它们都放在一个例子中:

   const unsigned long LAST = 0xFFFFFFFFu ;

将 #define 用于常量的形式很糟糕。