数据表示——原码、反码、补码、移码

本文详细介绍了计算机中数据的表示方法,包括原码、反码、补码和移码的概念及其转换过程。特别强调了补码和移码在提高运算速度上的作用,以及它们如何解决正负零的不同表示问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载地址:https://blog.csdn.net/xdd19910505/article/details/40424533

 

      数在计算机中的表示形式统称为机器数。计算机中处理数据及运算都是采用二进制,通常规定机器数用八位二进制表示。实用的数据有正数和负数,因为计算机只能表示0、1两种状态,数据的正号“+”或负号“-”,在计算机里就用一位二进制的0或1来区别,通常放在最高位,成为符号位。 符号位数值化之后,为能方便的对机器数进行算术运算、提高运算速度,计算机设计了多种符号位与数值一起编码的方法,最常用的机器数表示方法有:原码、反码、补码和移码,下面就分别介绍一下它们的表示方法。

 

一、原码、反码、补码

           三种表示法的转换过程如下:

 

 

说明:

 特别的,在原码中0有两种表示方式:[+0]原=0000000,[-0]原=1000000。

 在反码表示中,0也有两种表示形式:[+0]反=0000000,[-0]反=11111111。

 在补码表示中,0有唯一的编码:[+0]补=0000000,[-0]补=0000000。

 

 

 

二、移码

      因为个人移码理解有点困难,so单独解释一下:

      移码表示法是在数X上增加一个偏移量来定义的,常用来表示浮点数中的阶码,所以是整数。如果机器字长为n,规定偏移量为2^(n-1)。若X是整数,则[X]移=2^(n-1)+X

 

     则[+45]=+0101101+10000000,   [-45]=-0101101+10000000=01010011

     实际上由此可推出,在偏移2^(n-1)的情况下,只要将补码的符号位取反便可获得相应的移码表示。

      

 

 

 

 

说明:在移码表示中,0也编码是相同的,[+0]移=1000000,[-0]移=1000000。

 

      计算机之所以这些编码方法是为了便于运算,提高运算速度。四种表示方法其实是层层递进的,即会求十进制的二进制表示,记住符号位的正负表示,知道怎么递进的它们之间的关系。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值