首页  /  编程问答  /  什么是原码?  /  

什么是原码?

定义:

原码是一种二进制定点表示方法,第一位表示符号,用“0”表示“+”,用“1”表示“-”,其余位表示数值。

举例:(4位二进制数)

真值原码真值原码
00000-01000
10001-11001
20010-21010
30011-31011
40100-41100
50101-51101
60110-61110
70111-71111

数值范围:

一个字长为n的机器数能表示不同的数字的个数为2n个,例如:n=8时,2n=256。如果用来表示有符号数,数的范围就是-2n-1-1~2n-1-1,n=8时,这个范围就是-127~127。

但是,在不需要考虑数的正负时,就不需要用一位来表示符号位,n位机器数全部用来表示数值,这时表示数的范围就是0~2n-1,n=8时,这个范围就是0~255。没有符号位的数,称为无符号数。

优点:

原码表示直观易懂,与真值间转换容易,是人脑最容易理解和计算的表示方式。

缺点:

原码不能直接参加运算。

例: 0001+0001=0010,1+1=2

     0000+1000=1000,0+(-0)=-0

     0001+1001=1010,1+(-1)=-2

由此我们知道,正数之间的加法一般不会出错,而正数和负数相加会出现错误结果,这是由于符号位的存在而引起的。



本文固定URL:https://www.dotcpp.com/qa/29

下一页:什么是反码?
编程杂谈
编程基础
知识答疑