1 为什么需要八进制和十六进制
编程中,我们常用的还是10 进制⋯⋯必竟C/C++是高级语言
比如:int a = 100,b = 99
不过,因为数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题
但,二进制数太长了
比如int 类型占用 4 个字节, 32 位
比如 100,用 int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢
因此,C,C++ 没有提供在代码直接写二进制数的方法
用 16 进制或 8 进制可以解决这个问题
因为,进制越大,数的表达长度也就越短
不过,为什么偏偏是16 或 8 进制,而不其它的,诸如9 或 20 进制呢
2、8、16,分别是2 的 1 次方, 3 次方, 4 次方
这一点使得三种进制之间可以非常直接地互相转换
8 进制或 16 进制缩短了二进制数,但保持了二进制数的表达特点
在下面的关于进制转换的课程中,你可以发现这一点
2 二、八、十六进制数转换到十进制数6
1 二进制数转换为十进制数二进制数第0 位的权值是2 的 0 次方,第1 位的权值是2 的 1 次方⋯⋯所以,设有一个二进制数:0110 0100 ,转换为10 进制为:下面是竖式:0110 0100 换算成十进制第 0 位 0 * 20 = 0 第 1 位 0 * 21 = 0 第 2 位 1 * 22 = 4 第 3 位 0 * 23 = 0 第 4 位 0 * 24 = 0 第 5 位 1 * 25 = 32 第 6 位 1 * 26 = 64 第 7 位 0 * 27 = 0 +--------------------------- 100 用横式计算为:0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24