main() {int x=-1; printf("%d,%u,%o",x,x,x); } 这道题结果是1,65535,177777 65535和177777是怎么得来的。谢谢!!!
目前printf支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 %% 输出百分号%
不用我说了吧?……
[此贴子已经被作者于2004-08-01 00:38:48编辑过]
谢谢!是我打错了,多谢大家的提醒,可177777的怎么得来的。
你想知道啊!好象我们上次还没讨论出来呢
http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=197&ID=3490&page=1
如果用二进制表示-1(int型),不应该是1111111111111111么(负数用补码表示)???
同时%o没有正负,那三个变一个不就是177777么????
哦,是哦,好象这个帖子和上次的帖子有点不同,%u和%d的数据长度都是一样的,不能完全用上次的帖子来讨论。
%u我理解,可为什么%o八进制就转换成了177777了呢?%o到底是不是2个字节??