C语言的八进制`十进制和十六进制是怎么算的?

Python09

C语言的八进制`十进制和十六进制是怎么算的?,第1张

八进制:逢8进1,有效数字为0~7

例如八进制数25相当于十进制的2*8+5=21

十进制:就是平常普通数字0~9,逢十进1,这个不多说了吧

十六进制:逢16进1,有效数字

0~9

a~f(或则A~F)表示11~15,

十六进制数3F相当于十进制的3*16+15=63

比如说吧10=2的三次方加2的一次方,所以10的二进制就是110,就是第三位(从右往左)上是1,就是2的三次方乘1,第二位是1,就是2的平方乘1,依次类推。。。在比如25为2的四次加2的三次加2的0次,所以就为1101。

八进制也是这么算的,比如说30就是8的一次方的3倍加8的0次的6倍,就是36(八进制);

十六呢是1.2.3.4.5.6.7.8.9.10.A.B.C.D.E.F。。。

A.B.C.D.E.F.对应着11.12.13.14.15.16,算法是一样的。。不会可以在问我

C语言实现十六进制转换成十进制如下:

例如将十六进制数字 9FA8C 转换成十进制

9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)。

从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。

将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方。

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

再例如:十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)。

扩展资料:

C语言10进制转16进制

把十进制的数不停除以16的余数按从右到左的顺序排起来就是16进制,例如:55/16=0余5例如100 100/16=6余4 6/16余6,所以就是64,再例如1000 1000/16=62余8 62/16=3余12 3/16余3所以结果是3C8 //。

对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。

参考资料来源:百度百科-十六进制至十进制转换-十六进制--->十进制