算术运算中的数值都带有符号以表示正负
计算机中用0表示正,用1表示负
原来带有“+”、 “-”号的数据表示为真值
真值:x= +1011 y=-1011
机器数: x= 01011 y=11011
原码
二进制真值X的原码编码方法(n位)
对最高位对符号部分进行编码
用0表示’+’ ,用1表示’-’
剩下的(n-1)位对数字部分进行编码
编码与X的数字相同
如果X的数字不足(n-1)位,则高位补0,补足至(n-1)位
0原码有2个
+0 :0000…0
-0 :1000…0
假设用8位的原码表示
table | x | y |
---|---|---|
真值数 | +101 | -1010 |
最高位处理 | 0 | 1 |
原码 | 00000101 | 10001010 |
#####优点
简单直观,容易理解
#####缺点
做加法和剑法运算较为复杂,要对符号位和数值的绝对值大小进行判断
###原码转补码
#####符号部分同原码
数的最高位为符号位,0表示证书,1表示为负数
#####数字部分与它的符号位相关
对于正数,补码数字部分和原码数字部分相同
对于负数,补码数字部分是讲原码数字部分按位取反在加1
8位
真值 | 原码 | 补码 |
---|---|---|
+1101 | 00001101 | 00001101 |
-1110 | 10001110 | 11110010 |
注 | (正数补码原码一样) | 负数符号位一样,数字部分取反+1 |
###补码转原码
数字位取反+1(符号位除外)(针对于负数)
#####例如
补码11110010转原码 数字位按位取反+1
符号位不变
1 1110010 取反 等于= 0001101 在加1
= 0001110 (次数得到原码的数字位)
//最终结果 把符号位加上
10001110 就是他的原码了
###补码
性质:补码表示法可以建华加法运算,并且可以将减法变成加法
#补码的运算
###补码运算
符号位也参加运算
不用考虑符号位的进位问题
**解释:**因为R位 位模式的符号位产生进位的话,也就是超过R位了.这时候。我们以后没有位置来存放,进位的数了.所以可以直接丢弃,并不影响结果
####乘法
乘法其实,可以也是加法
事实上指的都是被乘数的移位和相加
####除法
##拓展
3位位模式 2^3 =8
补码 | 数 |
---|---|
000 | +0 |
001 | +1 |
010 | +2 |
011 | +3 |
100 | -4 //取反+1 等于100 符号位为- |
101 | -3 |
110 | -2 |
111 | -1 |
101解释 | 101求原码 101 符号位是1 数字是01 取反+1 等于11 符号位为负数 也就是-11 等于-3 |
三位数模式表示的数 | [-4,+3] |
###对于n位- 位模式来而言
他表示最小的数为:-2^(n-1),最大的数 +2^(n-1) -1
+起来是 2^n次方