原码(true form)是一种
计算机中对数字的
二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):
正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
简单直观;例如,我们用8位
二进制表示一个数,+11的原码为00001011,-11的原码就是10001011
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在
二进制中00000001+10000001=10000010,换算成
十进制为-2。显然出错了。
所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了
硬件的开销和复杂性
计算机中所有的数均用0,1编码表示,数字的
正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。
原码是
有符号数的最简单的编码方式,便于输入输出,但作为代码加减运算时较为复杂。一个字长为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.没有符号位的数,称为
无符号数。(
编辑器无法表示上标下标,可查阅图片)