少于 1 分钟阅读 次阅读

二进制表示数值,只有01两种状态,如何表示正负两种符号?

直观的想法 —— 挪用一位作为符号位:最高位为0表示正数、为1表示负数 被称为原码表示

缺点,需要额外的硬件电路确定符号位

原码

如何在不需要额外的硬件电路确定符号位的情况下,进行数值计算 —— 将负数的二进制表示中的绝对值部分按位反转 —— 反码 反码的好处是可以直接进行计算,不需要根据符号位去分情况讨论 反码

比如对100,也就是-3,加上1后,就变成101,在反码里面表示-2

但是反码和原码都出现了一个问题:0的表示不唯一

补码,在原码的基础上,对负数按位取反,再加一,规避了不唯一的0表示问题

留下评论