0177777代表的真值为-1,为什么?

2025-03-09 12:34:32
推荐回答(2个)
回答1:

显然这是在16位int系统中。C/C++规定,以0打头的数字是八进制,那么0177777就是十进制的65535,也就是十六进制的FFFF。因为16位int平台下int的范围是-32768~+32767,十六进制FFFF这个数的最高位是1,所以要作为负数处理,而FFFF刚好是-1的补码,所以真值是-1。

回答2:

因为77777不算