同洛阳同城跑腿加盟:初学C语言遇到的问题..

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 23:02:59
写出赋值表达式a的值
1)a%=(n%=2),n=5
2)a+=a-=a*=a
a=12

请问将十进制的数是怎样变成八进制和十六进制的???
例如十进制10等于八进制的多少和十六进制的多少??
是怎样变换的??

谢谢了..
第一题想对一下答案..请把过程简单写写了..
谢谢了...

如果你只是输出,同一个量可以直接转换的
例如 printf("%d,%o,%x",a,a,a)
就是将a分别以十进制,八进制和十六进制输出
答案:
1)a=0
2)a=0

你去看一下计算机原理
里面转换很详细的
我就不一一给你说了

1)由表达式,已知n=5,原表达式相等于a=a%(n=n%2)
先算括号里的,因为n=5%2,所以n=1
又已知a=12,a=a%1,即是a=12%1,所以a=0

2)原表达式相等于a=a+[a=a-(a=a*a)]
先算小括号,已知a=12,所以a=12*12=144
再算中括号,a=144,所以a=144-144=0
最后a=0+0=0

十进制转换8进制,用除8取余法,同理,转换2进制是除2取余,转换16进制是除16取余

例子:
十进制数68转换为8进制
用68除以8,商8,余4,那么八进制数最末一位取4
用上一步的商数8,除以8,商1,余0,那么八进制数倒数第二位取0
用上一步的商数1,除以8,商0,余1,那么八进制数倒数第三位取1
因为商数已经得0,所以不用再除,那么结果是104

同理,十进制数转换2进制,16进制都用以上方法可转换

1)由表达式,已知n=5,原表达式相等于a=a%(n=n%2)
先算括号里的,因为n=5%2,所以n=1,
任何整数除以一余数是0,所以如果a是整数,a=0.
%是取余数运算。
2)原表达式相等于a=a+[a=a-(a=a*a)]
先算小括号,已知a=12,所以a=12*12=144
再算中括号,a=144,所以a=144-144=0
最后a=0+0=0