进制的若干问题
进制之间的转化
1,进位值数
日常生活中,人们采用十进制来表示数值。而计算机则采用二进制,八进制和十六进制来表示数值。
2,进制转化
由于是以二进制为主,故转化也以二进制为主,
1, 二进制转化为八进制,
八进制的基数为八,二进制的基数为二,两者满足8=2*2*2,故每位八进制数可转化为等值的二进制数,反之亦然:(63.54)8=(110011.10100)2
6 3 . 5 4
110 011
101 100
2,八进制转化为二进制
以小数点为界,整数部分从左向右分为一组,小数部分自右向左分为一组,头尾不足则补足三位,再将每三位二进制数写成八进制数。
011 110 100 . 101 110
3 6 4 . 5 6
3,二进制转换成十进制
将二进制各位按权展开后相加
1011.101=1*2
4,十进制转换为二进制,
对整数部分“除二取余”,对小数部分“乘二取余”,
5,二进制转换为十六进制
二进制转换为十六进制与二进制转化为八进制相似,以小数点为界,整数部分,从右至左分成
4为一组,头尾不足者补0,然后将每4位二进制写成一位十六进制数。
6,十六进制转换为二进制,
将每位十六进制数写成
4为二进制数,便得转变结果,
7,由以上内容可以知道,八进制,十六进制是二进制的缩写形式,在计算机中利用这一点,将二进制代码表示的指令写成八进制或十六进制的,以便于书写或认读。
二进制的若干问题
1, 机器数
机器数即是数的符号数值化。实用数据带符号“
+”“-”,机器数中用“0”“1”,来表示,通常是二进制的最高位,因为有符号占据一位,数的形式值就不等于真正的数值。例,二进制的真值数-011011,他的机器数1011011
2, 二进制的原码,反吗,补吗
原码即是其原本的机器码,
反码即是其机器码完全相反的二进制数,
补码即是其反码加“
1”;
3, 二进制的四则运算
二进制的加法:
1001 二进制的减法: 1110
+ 0101 - 1011
-------- -----------(借位运算
)
1110 0011
二进制的乘法:
1101 二进制的除法:
1101
* 1001 101√1000001
--------------------
101
1101 ---------------
0000 110
0000 101
1101 ----------------
-------------------- 101
1110101
补码加减运算
设 x= +0110110
y= -1111001
加法:求 x+y=?
加法:求 x+y=?
[X]补=0,0110110
[Y]补=1,0000111
[X]补+[Y]补=[X
+Y]补= -1000011
减法:设x,y为正或负整数的真值,则可以利用下列补码求x-y
【x-y】补=【x-(y)】补=【x】补+【-y】补
设x=+1010101
y=+1100001,求 x-y=?
[x]补=0,1010101
-y=-1100001 【-y】补=1,0011111
x-y=-0001100
故
【x-y】补=【x】+【-y】补=1,1110100
可以知道,利用补码可以方便的将减法变成加法,这就是为什么计算机只有加法的原因