在C语言中这道题怎么算

main()
{int a,b,c;
a=-2;
b=125;
c=-13;
print("%d %o\n",a,a);
print("%x %u\n",b,c);}
结果是多少 过程详细些 谢谢大家
题中print改成printf

结果是"编译无法通过"
原因:使用了未定义的函数print()
把print()改成printf()

在32位系统上结果如下:

-2 37777777776
7d 4294967283

------------------------------------------

-2在int32下存储(补码)为:0xFFFFFFFE(就是31个'1',1个'0')
以%d 输出没什么好说的了,以%o输出,即从右边开始,每3位二进制组成1个八进制数,一共32位二制数,则可以算出是11个八进制数字,
最右端为"110"为八进制6,其它29位"1"可以得出9个八进制"7",最右边的两位"1",可以得出八制数"3":377777776

125二进制:0111 1101B = 7d H

-13在int32下存储为:0xFFFFFFF3
以无符号整数输出就是:4294967283

典型的进制转换及数据在计算机中的存储/处理方式问题.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-10-10
楼主并不是使用了未定义的函数,只是他写错了而已,
楼主的本意并非需要定义一个函数:
那print 的确是错了,
printf函数是一个标准库函数,可以直接调用,至于结果你自己试试就知道了~
第2个回答  2006-10-10
printf应该是打错了吧?
我算的结果是:
-2 2
7C 13