据我所知,在 64 位编译器中,(取决于编译器) unsigned long long 的最大大小可能类似于18446744073709551615ull ,所以当我想要我的 .c 程序时,我尝试搜索并将文字替换为-1ul由 32 位编译器编译,它确实有效,因为它等于 2^64 并且所有 64 位都是 1,所以 32 位的表示是 -1ul(我认为基于二进制补码)
但我想知道编号 9223372036854775808ull因为它是 2^(64-1) ,那么 32 位文字是什么?-2ul 还是 1ul????
谁能向我解释这个转换过程?不知怎的搞糊涂了……
阿米尔