C语言中以0开头表示8进制数,那他如何与十进制数的0区分呢?

如题所述

十进制,逢十进一.也就是说,在一个数里面,某位上的数值不能超过十,超过了就需要进位.
二进制,逢二进一.同上,但是二进制每一位最大不能超过2.
八进制.同上,不能超过八.
十六进制,同上,不能超过16.
十进制,共有十个数字:0,1,2,3,4,5,6,7,8,9.
二进制,共有二个数字:0,1.
八进制,共有八个数字:0,1,2,3,4,5,6,7.
十六进制,共有十六个数字:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(a-f就相当于10-15,但是在一个数位上只能用一个数字来表示,所以用a-f).
举例:
0,1这两个数在这4种数字表达方式中都是一样的.
对于3:二进制:11.
对于11:
八进制:13.
十进制:11.
十六进制:b.
对于17:
八进制:21.
十进制:17.
十六进制:11.
计算方法:
对与x进制,每一位的权就是x,把其他进制的数转换成十进制存在以下计算方式.
如果数有n位,从低位到高位,各位分别为a1,a2,...,an:
a1*x^0+a2*x^1+a3*x^2+...+an*x^(n-1)
如二进制:1111
,相当于十进制
2^0+2^1+2^2+2^3=15
十六进制:1abf,相当于
15*16^0+11*16^1+10*16^2+1*16^3=6847
二进制转成八进制、十六进制比较规律,分别为3位、4位对应一位.你自己查.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-11
8进制开头加0就是为了与10进制区分,10进制一般不加0,加了0,当所有数字都小于8时,无法与8进制区分。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网