c语言的小习题?帮忙解答一下!

来源:百度知道 编辑:UC知道 时间:2024/06/24 08:14:18
若有以下定义和语句:
int u=010,v=0x10,w=10;
printf(〃%d,%d,%d 〃,u,v,w);
则输出结果是()(本题分值:1分)

帮忙给出详细的解答..
另八进制怎么换算成十进制,十六进制数怎么化成十进制数?

8,16,10
根据你的题目,U应该是8进制数,因此应是1*8^1=8;
V是16进制数,因此是1*16^1+0*16^0=16;
W是10进制,输出就为他本身。
八进制数和16进制数与10进制数的区别就是各位的权不一样
10进制分别从低到高为1,10,10^2,10^3……;
而8进制就是1,8,8^2,8^3……;
16进制为1,16,16^2,16^3……;
知道这就很好换算了
(以上^号代表乘方)

输出结果是8,16,10,你可以先把八进制和十六进制先转为二进制再转为十进制

u=010 首字为0,c中用这种方法表示一个8进制数
v=0x10 前两个字为0x,c中用这种方法表示一个16进制数
w=10 w是10进制数,其值是10
%d是讲一个变量按10进制int型输出,u是8进制的“10”,相当于十进制的“8”,v是16进制的“10”,相当于10进制的16,所以结果为8,16,10

8进制或者16进制整数转为10进制方法相同,以abcde(8进制数)举例如下:=e*(8的0次方)+d*(8的1次方)+c*(8的2次方)+b*(8的3次方)+a*(8的4次方)