1. 编程学习网 > 编程入门 > 计算机知识 > 进制介绍(原码 补码 反码)

进制介绍(原码 补码 反码)

一,什么是进制:
 
进制也就是进位计数制,是人为定义的带进位的计数方法 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。(常见的进制有二进制,八进制,十进制,十六进制)
二,进制在计算机中的应用:
那么数据在计算机中存储也有他自己单位,这就是存储单元结构。在计算机中最小的信息单位是bit,也就是一个二进制位,8个bit组成一个Byte,也就是字节。字节是构成字的单位,根据机器位数的不同,若干字节构成一个字(在Í86机器中,一个字等于两个字节;在32位机器中,一个字等于四个字节;在64位机器中,一个字等于八个字节)。一个存储单元可以存储一个字节,也就是8个二进制位。
数字计算机中采用二进制来表示数据。在计算机中,使用的二进制只有0和1两种值。这种数字叫做机器数,机器数是将符号"数字化"的数,是数字在计算机中的二进制表示形式。机器数有2个特点:一是符号数字化,二是其数的大小受机器字长的限制。机器数也有不同的表示法,常用的有3种:原码、补码和反码。今天我们就来介绍原码,补码,反码
(1)原码 ( 同学们下面的例子一定要会哦!):
对于一个二进制的数而言,若用最高为表示数的符号(“0”表示正数,“1”表示负数),其余各位表示数值本身,这就是原码表示方法

(2)反码(注意下面的例子哦,动手试一试!)
  正数的反码和正数的原码一样,复数的反码符号位是“1”,其余各位在正数的原码基础上求反,即使“0”变“1”,“1”变“0”.

(3)补码(请同学们把下面的例子在草稿纸上算一算。)
正数的补码与原码,反码相同,负数的补码符号位为“1”,其余各位在正数原码基础上求反,再在末位加一,有进位时 向前进位,(其实就是反码+1).

(4)总结:
 
接下来我们总结下数据在计算机中的表示:
1)正机器数:符号位用0表示,数值不变。即[X1]原= [X1]反= [X1]补。
2)负机器数:原码,符号位用1表示,数值不变。反码,符号位用1表示,数值按位取反。补码,符号位用1表示,数值按位取反+1或反码+1。
 
   (5)说了这么多,想必同学们也有这样的疑问吧,机器数为什么要有要有原码 反码 补码这三种表示方法?
由于计算机无法描述负号,但是负数却很可能会产生,为了解决这个问题,把左边第一位空出位置,存放符号,正用0来表示,负用1来表示,原码因此产生。可是,又出现了一个新的问题,我们希望(+1)和(-1)相加是0,但计算机只能算出0001(+1)+1001(-1)=1010(-2),这不是我们想要的结果,为了解决“同一个数的正负相加等于0”的问题,在原码的基础上,产生了反码,反码表示方式是用来处理负数的,符号位置不变,其余位置相反。但是,却有两个零存在,+0和-0,我们希望只有一个0,所以产生了补码,同样是针对负数做处理的。我们要处理反码中的“-0”,当1111再补上一个1之后,变成了10000,丢掉最高位就是0000,刚好和左边正数的0,完美的进行了融合,这样就解决了+0和-0同时存在的问题。


本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/rumen/jisuanji/485.html

联系我们

在线咨询:点击这里给我发消息

咨询电话:400-998-2681

工作时间:7*24小时无休