原码反码补码

来源:互联网 发布:linux服务器ftp服务开 编辑:程序博客网 时间:2024/06/05 15:16

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

原码

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

优点:简单直观;例如,我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011

缺点:原码不能直接参加运算,可能会出错(与负数运算的时候出错)。


反码

正数:正数的反码与原码相同

负数:负数的反码,符号位为“1”,数值部分按位取反

例如: 符号位 数值位

[+7]反= 0 0000111 B

[-7]反= 1 1111000 B


补码

正数:正数的补码与原码相同。

负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。


0 0
原创粉丝点击