当发现 0 的恭维时,它变成了 -1。为什么0的补码是-1?它总是 -1 还是取决于编译器?
最佳答案
0 的按位求反,在 C 中写为 ~0
,仅当编译器使用 two's complement 时为 -1来表示有符号整数。因此,这是编译器表示数字的方式的结果,通常不是“真实的”。
关于c - ANSI C89 的补零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160028/
当发现 0 的恭维时,它变成了 -1。为什么0的补码是-1?它总是 -1 还是取决于编译器?
最佳答案
0 的按位求反,在 C 中写为 ~0
,仅当编译器使用 two's complement 时为 -1来表示有符号整数。因此,这是编译器表示数字的方式的结果,通常不是“真实的”。
关于c - ANSI C89 的补零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160028/