一、数制的基本介绍
1、数制:计数的方法,指用一组固定的符号和统一的规则表示数值的方法
2、数位:指数字符号在一个数中所处的位置
3、基数:指在某种进位计数制中,数位上所能使用的数字符号的个数
4、位权:指在某种进位计数制中,数位所代表的大小,即处在某一位上的“1”所表示的数值的大小
对不同的数制,可以给数字加上括号,使用下标来表示该数字的数制(当没有下标时默认为十进制)如:(1010)2、123、(2A4E)16,分别代表不同数制的数。
除了用下标表示外,还可以用后缀字母来表示数制,两者的意义相同。
- 十进制数用后缀D表示或无后缀
- 二进制数用后缀B表示。
- 八进制数用后缀O表示。
- 十六进制用后缀H表示。
5、数制中,N进制必须是逢N进一
- 十进制数逢十进一
1010D=1*10^3+0*10^2+1*10^1+0*10^0
- 二进制数逢二进一
1010B=1*2^3+0*2^2+1*2^1+0*2^0=10
- 十六进制数逢十六进一
1010H=1*16^3+0*16^2+1*16^1+0*16^0=4112
二、计算机中常用数制
十进制:基数是10,由十个不同的数字0、1、2、3、4、5、6、7、8、9表示。
二进制:基数是2,由十个不同的数字0、1表示。
八进制:基数是8,由十个不同的数字0、1、2、3、4、5、6、7表示。
十六进制:基数是16,由十个不同的数字0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。A~F分别代表十进数制的10~15。
三、数制的转换
1、二进制与十进制的转换
1.1二进制转换为十进制
二进制转换为十进制使用按权展开法:
实际的数*基数^下标+实际的数*基数^下标+实际的数*基数^下标
如:10101001B 基数为2
10101001B=1*2^8+0*2^7+1*2^6+0*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0
=256 +0 +64 +0 +16 +0 +0 +2 +1
=339
1.2十进制转换为二进制
- 取余法:将要转换的十进制整数除以2,取余数;再用商除以2,再取余数,直到商等于0位置,将每次得到的余数按倒序的方法排列起来即为结果。
如:54=110110B
减法:
1、找出最接近需计算十进制数的以2为底数的幂函数值。幂函数值从右至左依次变大。
2^9=512 | 2^8=256 | 2^7=128 | 2^6=64 | 2^5=32 | 2^4=16 | 2^3=8 | 2^2=4 | 2^1=2 | 2^0=1 |
2、两数相减,相减得数大于等于零写1,小于0写0,将得出的数继续计算,与下一个幂函数值继续相减,相减得数大于等于零写1,小于0写0,减到2^0=1为止,将写下的1或0按正序的方法排列起来即为结果。
如:125
125与2^7=128最接近,相减小于0则写0,——————————125-128<0……0
125继续与下一位相减125-2^6=61,相减大于0则写1,—————125-64=61……1
61继续与下一位相减61-2^5=29,相减大于0则写1,—————— 61-32=29 ……1
29继续与下一位相减29-2^4=13,相减大于0则写1,——————-29-16=13 ……1
13继续与下一位相减13-2^3=5,相减大于0则写1,——————-- 13-8=5………..1
5继续与下一位相减5-2^2=1,相减大于0则写1,————————-5-4=1…………1
1继续与下一位相减1-2^1,相减小于0则写0,—————————1-2<0....……….0
1继续与下一位相减1-2^0=0,相减大于0则写1,———————— 1-1<0....………1
所以结果为01111101B第一位0可省略最后答案为1111101B
2、二进制与八进制、十六进制的转换
2.1二进制转换为八进制
2^3=8,所以一位八进制数相当于三位二进制数,所以可以采用每三位为一组的方法,从右至左开始三个为一组,最后一组不够三位则在最后一组左侧补零,补齐三个为止。最后采用8421的方法求出每一组对应的十进数值。
如1110101010B=1652O
从右至左可分为 001 110 101 010
将算出的数值排列起来就是八进制结果1652
2.2 八进制转换为二进制
一位八进制数相当于三位二进制数,所以可以采用每三位为一组的方法,一位八进制数代表三位二进制数。仍然用8421的方法。
如:235O
将算出的数值排列起来就是二进制结果,最左侧0可省略 235O=10011101B
3、二进制与十六进制的转换
3.1二进制转换为十六进制
2^4=16,所以一位十六进制数相当于四位二进制数,所以可以采用每四位为一组的方法,从右至左开始四个为一组,最后一组不够四位则在最后一组左侧补零,补齐四个为止。最后采用8421的方法求出每一组对应的十进数值,从左至右排列起来即为16进制结果,A~F分别代表十进数制的10~15。
如:1110101010B
从右至左可分为:0011 1010 1010
所以 1110101010B=3AAH
3.2 十六进制转换为二进制
一位十六进制数相当于四位二进制数,所以可以采用每四位为一组的方法,一位十六进制数代表四位二进制数。仍然用8421的方法,将得出的二进制从左至右排列,A~F分别代表十进数制的10~15。
如:23BO
所以23BO=1000111011(最左端的0可省略)
4、十进制与十六进制的转换
4.1十进制转换为十六进制
十进制转换为十六进制可以采用取余的方法,按倒序排列
所以125=7DH
4.2十六进制转换为十进制
使用按权展开法:实际的数*基数^下标+实际的数*基数^下标+实际的数*基数^下标
16进制基数为16
如:7DH=7*16^1+13*16^0=125
7DH=7*16^1+13*16^0=125
5、八进制与十进制相互转换
5.1八进制转换为十进制
使用按权展开法:实际的数*基数^下标+实际的数*基数^下标+实际的数*基数^下标
8进制基数为8。
如11O
11O=1* 8^1+1*8^0=9
5.2十进制转换为八进制
采用取余的方法,如115
115=163O
6、八进制与十六进制的转换
可以以二进制为中介,也可以以十进制为中介,转换方法以上都有提到,可以参考,此处不再多做赘述。