计算机是二进制的,然后体现给用户10进制,我感觉就很好了。为啥又整16进制地址,BCD码那些胡里花哨的进制呢?感觉2进制转化为10进制就够用了,10进制人们看着也方便
小明是一个程序员,有一天他去买东西,老板,这个电视机多少钱?
1050元。
那凑个整吧。
1000元?不行,太低了,不卖。
不是,我是说,1024行不行。
首先,计算机用二进制最简单,然后,10进制对于程序员来说,其实很麻烦,因为3位2进制=1位8进制,4位二进制等于1位16进制。
计算机上的地址,基本都是按照2的n次方设计的,因为每次扩展,都相当于镜像对称扩展。这在硬件布线的时候的方便性就很明显了。
这就好比印刷厂,把1张a1纸对半裁剪,就是2张a2,再裁就是4张a3,8张a4。你说你要10张a4,那么就意味着你必须用2张a1还剩下一些边角料。
2进制是计算机使用的,由于2进制表示一个数要一长串,不方便,就用16进制来表示,如16进制的0xFF就可以表示2进制的1111 1111。
BCD码一般是使用8421码,8421代表4个位的权重,对于编码方面的应用特别方便。
10进制只是我们人使用比较方便的一种进制,和其它进制一样,在计算机中最终都要转为2进制。
首先楼主是肯定了二进制和十进制存在的意义,那关于二进制和十进制的就不废话,至于为什么需要八进制和十六进制呢?
这两种进制存在的意义是建立在计算机内部采用二进制实现的基础上的,不可否认刚开始肯定是0101的二进制,但是随着需求和计算量的增加,
如果继续用二进制敲代码,那长度是很长的,所以慢慢产生了八进制和十六进制,可能会问为什么不用十进制呢?
不方便,一个是计算机内部采取二进制,内存分块的时候一般都是2的多少次幂,十进制不方便计算或者偏移量方式,所以内存地址一般是十六进制显示
当然,如果硬件开发的话,可能会涉及设置方便问题,举个简单的例子,例如单片机,一些时件或者中断的控制寄存器之类的,基本上是8或者16位,
其中每一位是0还是1都代表不同的含义,如果敲代码十进制的话,还需要先换算二进制然后一位一位确定,这样大大降低效率,如果二进制的话,
那你必须敲8位或者16位一样效率很低,但是8进制或者十六进制转换二进制非常简单,根本不需要计算,所以两种进制就有了存在的意义。