本文为博主 LED-执棋困局,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步!
![75c55e0821c54ad180cd3ae3e1a7ed84.png](https://i-blog.csdnimg.cn/blog_migrate/9ab7857de9a78cbe62b572a49c1d9fb7.png)
1.进制基础
1.1位权计算
位权与进制有关。位权,是一个数学名词,指数制中每一固定位置对应的单位值。
十进制123=1x10^2+2x1 0^1+3x10^0
二进制10101=1x2^4+0x2^3+1x2^2+0x2^1+1x2^0=
十进制21
1.2进制转换
进制有很多种,主要有二进制(B)、八进制(O)、十进制(D)、十六进制(前缀0x、后缀H)。二进制0、1,八进制0-7,十进制0-9、十六进制0-9、A-F。
1.2.1其他进制转换十进制
其他进制转换成十进制,计算其位权即可。
(1101)B=1×2^3+1x2^2+0×2^1+1x2^0=(13)D。
1.2.2二进制与八进制转换
一个二进制,以3位为1组,从个位数开始分组,分组时出现一组不到3位的情况,往最左边补0,分组完成后,计算每组的位权,结果就是八进制。
(1101011)B= 001 101 011
001位权是1,101位权是5,011位权是3,所以其结果是(153)O。
八进制转换成二进制,只需要将每一位转换成3位二进制。
(1236)O=(001010011110)B
1:001 2:010 3:011 6:110
1.2.3二进制与十六进制转换
一个二进制,以4位为1组,从个位数开始分组,分组时出现一组不到4位的情况,往最左边补0,分组完成后,计算每组的位权,结果就是十六进制。
(1101010)B=0110 1010=(6A)H=0x6A。
0110位权是6
1010位权是A
1.2.4十进制转换其他进制
1.3机器数与真值
1.3.1机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1。十进制中的数 +5 ,由于计算机字长为8位,所以转换成二进制是0000 0101。如果是 -5 ,二进制是 1000 0101 。那么,这里的 0000 0101和 1000 0101就是机器数。
1.3.2真值
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。
例如上面的有符号数 10000101 ,其最高位1代表负,其真正数值是 -5,而不是形式值138(1000 1010转换成十进制等于138)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1
1.4有符号的二进制表示
符号位以+为0,-为1。原码就是就是取符号位,其他位值取真值的绝对值。
1.4.1正数的原码、反码、补码
二进制正数的原码、反码、补码是一样的。正整数 123 ==> (二进制) 0111 1011
原码: 0111 1011
反码: 0111 1011
补码: 0111 1011
1.4.2负数的原码、反码、补码
反码:原码基础上,符号位不变,其他位取反。补码:在反码基础上加1。
负整数 -123 ==> (二进制)
原码-123 ==> 0111 1011 ==> 1111 1011
反码1000 0100
1000 0100 + 1 ==> 1000 0101
1.5BCD码
四位二进制表示一个十进制。
(123)BCD码=0001 0010 0011
1.6ACSII码
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。
2.进制计算
2.1和
二进制加运算"逢二进一",0+1=1,1+1=10。101+110=1011
十六进制和运算,"逢十六进一",例如,0x0f+0x01=0x10,0x19+0x01=0x1A。
2.2减
二进制减运算
1-0=1、10-1=1,101-11=10,例如,1100-111=101。
十六进制和运算
0x1A-0x06=0x14。
更具体可以看此文章: