gpt4 book ai didi

c - 在 C 中屏蔽一点返回意外结果

转载 作者:行者123 更新时间:2023-12-02 12:01:28 26 4
gpt4 key购买 nike

0x7F000000 是 32 位二进制的 0111 1111 0000 0000 0000 0000 0000 0000
0x010000580000 0001 0000 0000 0000 0000 0101 1000

当我将两个数字相加时,我期望 0000 0001 0000 0000 0000 0000 0000 0000,但由于某种原因我得到 0。

这是我的代码:

#define MASK_binop     0x80000000
#define MASK_operation 0x7F000000

int instruction=atoi(line);
if((MASK_binop & instruction)>0)
printf("binop\n");
else if((MASK_operation & instruction)>0)
printf("operation\n");

上述每个比较都始终返回零。跟32/64位有关系吗?我使用的是 64 位编译器。

最佳答案

如果行包含“0x01000058”,那么 atoi 将返回 0,因为 atoi 使用十进制表示,而不是十六进制 0x 表示。那么 AND 显然为零。尝试打印指令的值。

关于c - 在 C 中屏蔽一点返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4695188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com