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