展开全部
int k=11;表示十进制下k的值是11。
用8进制表示的话,首先把11写成8的级数与余数的和的形式,那就是 11 = 1×8 ^1 + 3×8^0, 所以在8进制下就是 13 , 意义就是 1×8 ^1 + 3×8^0。
用16进制表示也是一样的道理,11 = 11 × 16^0,说明 在16进制下 只有 1 位数, 而 16 进制的 所有 「个位数」是 从 0 ~ 9 以及 a、b、c、d、e、f,后面这几个字母分别表示 10进制下的 10 、 11、12、13、14、15,所以 题目的 结果就是 「b」。
而另外一方面,我们说在C语言中把一个数表示为8进制的形式是以「0」开头,16进制的形式是以「0x」开头,实际上只是告诉编译器这个数是8进制或16进制,因为默认的在程序代码中数字的表示是10进制,如果写个8进制的数在那里,编译器也不认识它啊!而等到输出的时候,无论是%d、%o还是%x都是以「真正」的10进制、8进制、16进制的形式输出来的,没有任何前缀的。
(如有帮助,烦请采纳,谢谢!)
用8进制表示的话,首先把11写成8的级数与余数的和的形式,那就是 11 = 1×8 ^1 + 3×8^0, 所以在8进制下就是 13 , 意义就是 1×8 ^1 + 3×8^0。
用16进制表示也是一样的道理,11 = 11 × 16^0,说明 在16进制下 只有 1 位数, 而 16 进制的 所有 「个位数」是 从 0 ~ 9 以及 a、b、c、d、e、f,后面这几个字母分别表示 10进制下的 10 、 11、12、13、14、15,所以 题目的 结果就是 「b」。
而另外一方面,我们说在C语言中把一个数表示为8进制的形式是以「0」开头,16进制的形式是以「0x」开头,实际上只是告诉编译器这个数是8进制或16进制,因为默认的在程序代码中数字的表示是10进制,如果写个8进制的数在那里,编译器也不认识它啊!而等到输出的时候,无论是%d、%o还是%x都是以「真正」的10进制、8进制、16进制的形式输出来的,没有任何前缀的。
(如有帮助,烦请采纳,谢谢!)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询