基础知识——进位制
一:什么是进位制?
进制也就是进位计数制,是人为定义的带进位的计数方法,也有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正字计数法,以及外国人常用的tally mark计数(四条竖杠和一条斜线)
基数:某数字可以使用的数码个数,通俗说就是这个数字有多少位。
数码:一组用来表示某种数制的符号,这个数字可以由什么数字组成。
二:常见的进位制
十进制,二进制,八进制,十六进制
为什么要引入十进制呢?
因为我们生活中使用十进制,而二进制,八进制,十六进制这些都是2的次幂,八和十六是最贴近十的2的次幂。
三:进制的快速记法
二进制,八进制,十六进制每多一个0就相当于十进制的数字乘以一个进制。
四:十进制(Decimal)
我们生活中所使用的进制,因为每个人都有十个手指,人类刚开始都是用手指计数的,即使是现在的小朋友算数也还是喜欢掰手指计算,所以人类最习惯用十进制。
基数为10,数码为0-9,逢十进一,符号为D。
五:二进制(Binary)
计算机中所使用的进制,因为二进制从硬件上比较容易实现,任何事物最少也有两种不同的状态,所以区分成两种状态比较容易。但是要将一个硬件硬生生地区分成十种不同的状态,这样就比较复杂了。
基数为2,数码为1-2,逢二进一,符号为B。
二进制的可读性很差,例如两个二进制数字进行比大小,都十分难分辨:
六:八进制(Oct)
基数为8,数码为0-7,逢八进一,符号为0。
七:十六进制(Hex)
基数为16,数码为0-9和A-F,逢十六进一,符号为0X或0x。
八:十进制与其他进制的转换
辗转相除法:用这个十进制数字除以进制,再用商除以进制,直到商为0,把余数倒着连起来。
17(D)=10001(B)
17(D)=21(0)
17(D)=11(0X)
九:其他进制转十进制
每一位的数字乘以进制的位数-1次方,再相加。
1001(B)=17(D)
21(0)=17(D)
11(0X)=17(D)
十:二进制与八进制,十六进制相互转换
一个八进制位=三个二进制位
一个十六进制位=四个二进制位
从右向左依次取位数,展开的数字就是得数
1100(B)=14(0)
1100(B)=C(0x)