回复 5楼 黑色洋葱
int a=-1;(LZ电脑int是32位编译器。。?)
就意味着a的存储形式是
0000 0000 0000 0000 0000 0000 0000 0001(原码)
1111 1111 1111 1111 1111 1111 1111 1110(反码)
1111 1111 1111 1111 1111 1111 1111 1111(补码)
以%d为格式输出,则机器认为首位是符号位并对数据进行上述操作的逆运算,结果加个负号就成了‘-1’
以%o为格式输出,就直接把这一串二进制数转成八进制了,不考虑负号了。结果就是37777777777
个人新手,可能有错多包涵