原码
如果机器字长为n(即采用n个二进制位表示数据),则原码表示方法如下:
- 整数原码
当X是纯整数时
[X]原= X, 0 ≤ X ≤2的n-1次 -1
[X]原= 2的n-1次 + (X的绝对值) , -(2的n-1次 -1) ≤ X ≤ 0
- 小数原码
当X是小数时
[X]原= X, 0 ≤ X < 1
[X]原=2的0次+(X的绝对值) , -1 < X ≤ 0
这些方法是书上给的方法,但是相对而言比较繁琐,小编给大家化简一下,其实不难。
- 对于正整数,其原码等于它本身,而负整数原码则是其对应的整数原码(负整数的绝对值),加上一位或者两位符号位即可。
- 对于小数而言,其原码则是将它乘2取整再取值。
化整方法如下:
计算0.1875的原码
0.18752=0.3750 ,取整数位0
0.37502=0.7500 ,取整数位0
0.75002=1.5000 ,取整数位1
0.50002=1.0000 ,取整数位1
然后从上往下 即0.1875的原码是1100,再加上一位符号位1,则1 1100,因为机器字长为八位,所以凑齐八位 1 1100 000
对此需要特别注意的是,在补齐位置的时候,要注意整数是往符号位之后,数值之前补,而小数则是往数值之后补。
大家可以使用以上方法计算下列数值得原码
[+1]原=0 0000001 [-1]原=1 0000001
[+127]原=0 1111111 [-127]原=1 1111111
[+45]原=0 0101101 [-45]原=1 0101101
[+0.5]原=0 .1000000 [-0.5]原=1 .1000000
小数原码不写小数点,在此是为了特别注明小数点的位置,以区分符号位和数值位。
数值0的原码表示有两种形式:
[+0]原=0 0000000 、[-0]原=1 0000000
如果有什么问题,欢迎大家指正!!!