原码

原碼（True form）是電腦運算的名詞，是指“未經更改”的碼。为了便于ALU的设计，又發展出反码、补码等轉換過的碼。

原码是指一个二进制数左边加上符号位后所得到的码，且当二进制数大于0时，符号位为0；二进制数小于0时，符号位为1；二进制数等于0时，符号位可以为0或1(+0/-0)。

 原码的具体定义 
计算机中所有的数均用0、1编码表示，数字的正负号也不例外，如果一个机器数字长是n位的话，约定最左边一位用作符号位，其余n-1位用于表示数值。

 小数原码的定义 
[X]原 = 

例如：[+0.1011]原=0.1011000

[-0.1011]原=1.1011000

（代码中的小数点“.”是在书写时为了清晰起见加上去的，在机器中并不出现。）

 整数原码的定义 
[X]原 = 

例如：[+1011]原=00001011

[-1011]原=10001011

 编码方式 
原码是最简单的编码方式，便于输入输出，但作为代码加减运算时较为复杂。一个字长为n的机器数能表示不同的数字的个数是固定的个。当时，能表示256个数字。

 有符号数 
用来表示有符号数，数的范围就是。当时，这个范围就是。

 无符号数 
在不需要考虑数的正负时，就不需要用一位来表示符号位，n位机器数全部用来表示是数值，这时表示数的范围就是。当时，这个范围就是。

 原码的优点 
简单直观；例如，我们用8位二进制表示一个数，则+11的原码为00001011，-11的原码就是10001011。

 原码的缺点 
原码不能直接参加运算，可能会出错。例如数学上，1+(-1)=0，而在二进制中00000001+10000001=10000010，换算成十进制为-2。显然出错了。

所以原码的符号位不能直接参与运算，必须和其他位分开，这就增加了硬件的开销和复杂性。

 參見 
 有符號數處理
 一補數
 二補數

Category:计算机算术
Category:二进制算术