贝尔摩德多少集出来:看C语言课本遇到问题了!

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 00:10:33
课文内容:
1)八进制整常数:八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为0~7。八进制数通常是无符号数。
以下各数是合法的八进制数:
015(十进制为13)、0101(十进制为65)、0177777(十进制为65535)
2)十六进制整常数:十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。
以下各数是合法的十六进制整常数:
0X2A(十进制为42)、0XA0 (十进制为160)、0XFFFF (十进制为65535)
问题:为什么十六进制0X2A可以用十进制表示成42,八进制015用十进制可以表示成13?我想不通......谁给解释下~!~

我门通常用的是十进制,也就是逢十进1,也就是可以用
0,1,2,3,4,5,6,7,8,9表示个位,当到十的时候就进了一位,变成了两位10

同理,八进制是逢八进1,也就是可以用
0,1,2,3,4,5,6,7表示个位,当到八的时候变成了两位10,我们在八进制数10前面加上0,八进制数10就变成了010了,010表示8,015表示1*8+5=13,那么我门再看一个数046表示多少呢?表示4*8+6=42

同理,十六进制是逢十六进1,也就是可以用
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f表示个位,其中a,b,c,d,e,f分别表示十进制中的10,11,12,13,14,15,在十六进制小于十六的都是用一位来表示,当数等于16的时候就要进位了,变成了10,我们为了和十进制区别,在10前面加0x10,表示这个数是用16进制表示的,那么0x10由于是逢16进一,所以0x10表示的不是10,而是16,所以0x2a=2*16+a=2*16+10=42

这是进制转换的问题了,介绍起来比较麻烦,建议楼主上网查一下关于进制转换的文章。
十六进制的2A,就等于十进制的42,
八进制的15,就等于十进制的13

你想想 八进制是没有8和9的 所以
十进制7=八进制7
十进制8=八进制10
十进制13(8+5)=八进制15(10+5)

十六进制
十进制10=十六进制A
十进制16=十六进制10
十进制32=十六进制20
十进制42(32+10)=十六进制2A(48=30,所以47=2F,46=2E,45=2D,44=2C,43=2B,42=2A)

2A[16进制] = 2*16+A = 32+10 =42
015[8进制] = 0*8^2+1*8+5 = 8+5 =13

这是个数学问题 跟c没多大关系。