将变量与大十六进制数进行比较
Comparing variable to large hex number
我正在从文件中读取原始二进制文件,并想检查该数字是否0xFFFFFFFF
.
#define LAST 0xFFFFFFFF
unsigned long data;
//...give value to data
if(data == LAST)
这给出的结果与LAST
定义为4294967295
是0xFFFFFFFF
的无符号基数 10 表示不同。但是我注意到如果用-1
替换0xFFFFFFFF
,则给出了正确的结果。这是为什么呢?
你可以做几件事。我把它们都放在一个例子中:
const unsigned long LAST = 0xFFFFFFFFu ;
将 #define 用于常量的形式很糟糕。
相关文章:
- 将字符串转换为十六进制数组c++
- 如何使系统在十六进制数之前打印 0x,在八进制数之前打印 0?
- 将大十六进制数转换为十进制形式(以 10 为基数的形式)的算法
- 为什么将字符串输出到未命名的 std::ofstream 反而给了我一个十六进制数?
- 使用无符号字符数组输入十六进制数
- 将十六进制数作为主要函数参数
- 钻头和转移操作数以清除选定的十六进制数
- 在C/C++中将十六进制数组作为字符串写入文件
- 十六进制数组 cout 到文本文件失败
- 将十六进制数转换为布尔数组
- 在 C++,(C) 中更改十六进制数的前导零位
- 将十六进制数的 char[] 转换为对应于 ASCII 表中十六进制数字的字母的 char[] 并反转
- 如何获取十六进制数的最后 n 位数字
- 将char数组转换为十六进制数组(C++)
- 从几个十进制数中绘制一个十六进制数
- 如何使用十六进制数初始化字符数组
- 从十六进制数组读取 Int
- 从十六进制数组读取双精度到向量
- 将变量与大十六进制数进行比较
- 比较std::addressof()与十六进制数