原码

vivarock

2018-01-30 14:02:47

Personal

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。 中文名 原码 外文名 true form 定 义 二进制定点表示方法 方 法 其余位表示数值的大小 优 点 简单直观 缺 点 不能直接参加运算 目录 1 原码的优点 2 原码的缺点 3 编码方式 原码的优点 简单直观;例如,我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011 原码的缺点 原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中 原码 原码 00000001+10000001=10000010,换算成十进制为-2。显然出错了。 所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性 具体定义还分小数和整数: ①小数原码的定义 [X] = X( 0≤X <1 ) 1- X (-1 < X ≤ 0) 例如: X=+0.1011 , [X]原= 0.1011 X=-0.1011 [X]原= 1.1011 ②整数原码的定义 [X]原 = X (0≤X <2(n-1)) 2(n-1)-X (- 2(n-1) < X ≤ 0) x为正整数时,[X]原=x; x为负整数时,[X]原=2的n次方-x; x为负小数时,[X]原=1-x; 计算机中所有的数均用0,1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。 在符号位上用"0"表示正数;用"1"表示负数。数值位表示真值的绝对值。凡不足n-1位的,小数在最低位右边加零;整数则在最高位左边加零以补足n-1位。这种计算机的编码形式叫做原码。 记作X=[X]原。例如在字长n=8的机器内: 小数: [+0.1011]原=0.1011000 [-0.1011]原=1.1011000 整数: [+1011]原=00001011 [-1011]原=10001011 代码中的小数点”.”是在书写时为了清晰起见加上去的,在机器中并不出现。 编码方式 原码是有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。 原码 原码 一个字长为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.没有符号位的数,称为无符号数。 (编辑器无法表示上标下标,可查阅图片)