我偶然发现了以下问题,有人可以帮忙吗?我正在尝试使用按位运算,我希望这能打印出 2^50 的值。然而,输出是 0。我可以打印的最大值是 2^31,这应该是正常 int 的最大值,对吧?那么我在这里做错了什么吗?提前致谢。
#include<stdio.h> #include<inttypes.h> int main(void) { uint64_t x=(1<<50); printf("%"PRIu64,x); return 0; }
我偶然发现了以下问题,有人可以帮忙吗?我正在尝试使用按位运算,我希望这能打印出 2^50 的值。然而,输出是 0。我可以打印的最大值是 2^31,这应该是正常 int 的最大值,对吧?那么我在这里做错了什么吗?提前致谢。
#include<stdio.h> #include<inttypes.h> int main(void) { uint64_t x=(1<<50); printf("%"PRIu64,x); return 0; }