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

时间:2014-11-29 00:57:22

标签: c++ math unsigned

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

#define LAST 0xFFFFFFFF

unsigned long data;
//...give value to data
if(data == LAST)

LAST被定义为42949672950xFFFFFFFF的无符号基数10表示形式相比,这会产生不同的结果。但是,我注意到如果0xFFFFFFFF替换为-1,则会给出正确的结果。这是为什么?

1 个答案:

答案 0 :(得分:0)

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

   const unsigned long LAST = 0xFFFFFFFFu ;

将#define用于常量是不好的形式。