1> 表示方法
问:只用0或1,怎么表示负数,例如【-5】?
方法1> 符号位
用最高位表示符号位,1代表负数,0代表正数;
成功表示了负数,
做运算咋样?试试 5 + (-5)= ?
采用这种方式:
1> 得到错误值 -2;
2> 正数变负数, 只把符号位取反,其他位不变;
方法 2> 反码
每位取反
成功表示了负数,
做运算咋样?试试 5 + (-5)= ?
采用这种方式:
1> 得到结果, 有些与正确值差1;
2> 正数变负数, 所有位取反;
方法 3> 补码
采用反码后,发现有部分值依然计算错误,改进下
成功表示了负数,
做运算咋样?试试 5 + (-3)= ?
哦吼!!!
1> 得到结果, 与正确值一样;
2> 正数补码不变,负数补码,先取反得到反码, 再加1得到反码;
结论 :
采用补码表示二进制值数,方便用逻辑门实现运算;
2> 硬件实现
示例: