据我所知,在 64 位编译器中,(这取决于编译器)unsigned long long 的最大大小可能类似于 18446744073709551615ull ,所以我尝试搜索并将文字替换为 -1ul 当我希望我的.c程序由32位编译器编译,它确实可以工作,因为它等于2^64并且所有64位都是1,所以32位的表示是-1ul(我认为基于二进制补码)
但是我想知道第 9223372036854775808ull 因为它是 2^(64-1) ,32位文字是什么? -2ul还是1ul???
有人可以向我解释一下这个转换过程吗?不知何故感到困惑...
阿米尔