二进制基础
目录
目标:
- 理解计算机的数制
- 会进行二进制,十进制,十六进制相互转换
为什么会使用二进制
在计算机上,计算机不能识别十进制数,只能识别01码,即二进制数。由0,1的两位数字组成。
一、计算机数制
1.1 概念
举例:189
数制:计数的方法 十进制
数位:数字符号在一个数中所处的位置 百位、十位、个位
基数:数位所能够使用的数字符号的个数 0~9
位权:数位所代表的大小 100、80、9
1.2 十进制(Decimal system)
在十进制数制系统中,包含10个数字(0~9)
以189为例
1 8 9
9代表第一位,8代表第二位,1代表第三位
表示方式: (189)10 (189)D
1.3 二进制(Binary system)
在二进制的数制系统中,只包含两个数字(0、1)
以:1001100为例
表示方式: (1010)2 (1010) B
1.4 八进制(Octal)
在八进制的数制系统中只包含(1~7)
以123(8)
表示方式:(123)8 (123) O
1.5 十六进制(Hexadecimal)
在十六进制数制系统中,基数是16
10 11 12 13 14 15
包含的数字(0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F)
举例:F 3 A
15 3 10
表示方式:(F3A)16 (F3A)H 0X开头 比如(F3A)H 0XF3A
二、进制转换
2.1 十进制和二进制互转
十进制转二进制
(除二取余法)
整数
除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数
结果是:反向取余
小数:
乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。读数,从第一位读起,读到最后一位。如果小数部分永不为0,按精确度四舍五入
结果是:正向取余
二进制转十进制
整数部分:从右至左,进制数第一位的权值是2^0 第二位是2^1 以此计算,公式:第N位为2^n-1
小数部分:从左至右,进制数第一位的权值是2^-1 第二位是2^-2 以此计算,公式:第N位为2^-n
1111 (o)=1x2^0+1x2^1+1x2^2+1x2^3=15(D)
0.101(o)=1*2^-1+0*2^-2+1*2^-2=0.625(D)
2.2 十进制和八进制互转
整数部分
除八取余法
10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:将图1中的基数由2变成8,然后依次计算。
小数部分
乘八取整法,也就是说小数部分乘以8,然后取整数部分,再让剩下的小数部分再乘以8,再取整数部分,以此类推,一直乘到小数部分为零为止。
八进制转十进制
整数部分:从右往左第一位的权值为8^0第二位权值为8的1次方,第3位权值为8的2次方,依次计算,公式:第N位 * 8的N-1次方,结果再相加便是最后结果
小数部分:从左至右,进制数第一位的权值是8-1 第二位是8-2 以此计算,公式:第N位为8^-n
72.45(o)转十进制
7*8^1+2*8^0+4*8^-1+5*8^-2
152(O)
2x8^0+5x8^1+1x8^2=16+40+64=106
2.3 十进制和十六进制之间转换
十进制--->十六进制:
整数部分
除16反向取余法
10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:将图中的基数由2变成16,然后依次计算。
小数部分:
正向取整法
乘16取整法,也就是说小数部分乘以16。然后取整数部分,再让剩下的小数部分再乘以16再取整数部分,以此类推,一直乘到小数部分为零为止。
十六进制--->十进制:
第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次计算,公式:第N位 * 16的N-1次方,结果再相加便是最后结果。
50.52(h)
5x16^1+0x16^0+5x16^-1+2x16^-2
2.4 扩展
十进制转任何进制都用反除反向取余,小数用正向取整法
一个1位的十六进制=一个四位的二进制
一个1位的八进制=一个三位的二进制
二进制和八进制之间转换: 可先转换为十进制在转换为二进制或者八进制
二进制和十六进制之间转换: 可先转换为十进制在转换为二进制或者十六进制
八进制和十六进制之间转换: 可先转换为十进制在转换为十六进制或者八进制
2.5 二进制优点
易于实现、只有两种状态表示
运算简单 更容易实现逻辑运算
0+0=0 0+1=1 1+0=1 1+1=0
0*1=0 1*0=0; 1*1=1 0*0=0