计算机源码
❶ 计算机的原码,反码,补码是怎么回事可以举例说明吗
原码、反码和补码是计算机中对数字二进制的三种表示方法。
1、原码
原码(trueform)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
例如:用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011。
2、反码
反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。反码的表示方法是:正数的反码与其原码相同;负数的反码是对正数逐位取反,符号位保持为1。
例如:
[+7]反=00000111B;
[-7]反=11111000B。
3、补码
正数:正数的补码和原码相同。负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。
例如:
[+7]补=00000111B;
[-7]补=11111001B。
(1)计算机源码扩展阅读
原码、反码、补码的转换方法如下:
(1)已知原码,求补码。
例:已知某数X的原码为10110100B,试求X的补码和反码。
首先通过原码的首位确定该数字的正负,若为正数,反码与原码相同,补码比原码在末尾加1;若为负数,求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1。
(2)已知补码,求原码。
按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法。
❷ 计算机原码反码补码怎么算
计算机原码反码补码计算方法:
1、原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]
即[-127 , 127]
原码是人脑最容易理解和计算的表示方式。
2、反码
反码的表示方法是:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
可见如果一个反码表示的是负数,人脑无法直观地看出来它的数值。通常要将其转换成原码再计算。
3、补码
补码的表示方法是:正数的补码就是其本身。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)。
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
对于负数,补码表示方式也是人脑无法直观看出其数值的。通常也需要转换成原码在计算其数值。
(2)计算机源码扩展阅读:
原码,反码和补码是完全不同的。既然原码才是被人脑直接识别并用于计算表示方式,为何还会有反码和补码呢?
首先,因为人脑可以知道第一位是符号位,在计算的时候我们会根据符号位,选择对真值区域的加减。但是对于计算机,加减乘数已经是最基础的运算,要设计的尽量简单。计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂。于是人们想出了将符号位也参与运算的方法。我们知道,根据运算法则减去一个正数等于加上一个负数,即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法,这样计算机运算的设计就更简单了。
于是人们开始探索将符号位参与运算,并且只保留加法的方法。
❸ 原码是怎么算
原码:在数值前直接加一符号位的表示法。
例如: 符号位=数值位
[-7]原=1 0000111 B
注意:a. 数0的原码有两种形式:
[+0]原=00000000B [-0]原=10000000B
b. 8位二进制原码的表示范围:-127~+127
编码方式
原码是有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。
一个字长为n的机器数能表示不同的数字的个数是固定的2^n个,n=8时2^n=256;用来表示有符号数,数的范围就是 -2^(n-1)-1 ~ 2^(n-1)-1,n=8时,这个范围就是 -127 ~ +127。
但是在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示是数值,这时表示数的范围就是0~2^n-1,n=8时这个范围就是0~255。
❹ 计算机原码补码的计算
计算机原码补码的计算方法:
1、原码:在计算机中的机器字长的最高位(最左边)表示正负,0为正数,1为负数,原码就是最高位是符号位,其余位表示数值(绝对值)大小。
2、反码:正数的反码就是其本身(原码)不变,而负数的反码就是在负数原码的基础上符号位保持不变,其余位按位取反。
3、补码:正数的补码就是其本身(原码),而负数的补码就是在原码的基础上符号位保持不变其余位按位取反,然后再+1,即在反码的基础上+1。
总结:正数的原码、反码和补码都一样,都等于原码。负数的反码就是在原码的基础上符号位不变其余位按位取反,负数的补码就是在反码的基础上+1。
(4)计算机源码扩展阅读:
原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错了。所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:
(1)解决了符号的表示的问题;
(2)可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计;
(3)在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易;
(4)补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。
❺ 计算机原码是什么
计算机原码:是一种计算机中对数字的二进制定点表示方法。
特点:原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
举例说明应用场景:我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011
源码的缺点:原码不能直接参加运算,可能会出错。
例如:数学上,1+(-1)=0,而在二进制中原码00000001+10000001=10000010,换算成十进制为-2。显然出错了