博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原码 补码
阅读量:4204 次
发布时间:2019-05-26

本文共 1377 字,大约阅读时间需要 4 分钟。

  原码

  数的最高位为符号位,符号位为0表示正数,符号位为1表示负数,其余有效数值部分用二进制的绝对值表示。例如,假设机器字长为8位,则[+1]原 = 00000001,[-1]原 = 10000001。

  范围

  定点小数:-1<X<1,定点正数:-2n<X<2n 或 -(2n-1) ≤ X ≤ 2n-1

  真值

  第一位是符号位,在表示负数时,机器数的形式值并不等于真正的数值。例如 10000001,最高位1代表负,其真正数值是 -1,而不是形式值129(10000001转换成十进制等于129)。为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。

  原码加减运算

  原码加减,是指操作数与运算结果均用原码表示,运算时将尾数进行加减,符号位单独处理。将八种加减运算可以归并为四类操作。

  (+A)+(+B)=(+A)-(-B)

  (-A)+(-B)=(-A)-(+B)

  (+A)+(-B)=(+A)-(+B)

  (-A)+(+B)=(-A)-(-B)

  原码的定点小数与定点整数定义:

  补码

  正数采用符号-绝对值表示,即数的最高有效位为0表示符号为正,数的其余部分则表示数的绝对值。例如,假设机器字长为8位,则[+1]补 = 00000001,[+127]补 = 01111111,[+0]补 = 00000000。

  负数X用2的n次方-|X|来表示,其中n为机器的字长。当n=8时,[-1]补 = 2的8次方 - 1 = 11111111,而[-127]补 = 2的8次方 - 127 = 10000001,显示,最高有效位为1表示该数的符号为负。应该注意,[-0]补 = 2的8次方 = 00000000,所以在补码表示法中0只有一种表示,即00000000。对于10000000这个数,在补码表示法中被定义为-128。这样,8位补码表示数的范围为-128~+127。
  变反加1法:即原码的符号位不变,然后将其余位变反(即0变为1,1变为0),最后在末位(最低位)加1,就可以得到该负数的补码表示了。
  例:机器字长为16位,写出N = -117的补码表示。
-117可表示为 1000 0000 0111 0101
按位求反后为 1111 1111 1000 1010
末位加1后为 1111 1111 1000 1011
用十六进制数表示为 F F 8 B
  即[-117]补 = FF8B
  例:机器字长为8位,则-46的补码表示。
-46的原码表示 1010 1110
按位求反 1101 0001
末位加1 1101 0010
用十六进制数表示 D 2
  即[-46]补 = D2H
  第三种求法:原码符号位不变,自低位向高位检查,第一个1及以前各位0不变,以后各位按位变反。
  符号扩展问题。对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展则应该在前面补1。例如,我们已经知道如机器字长为8位,则[+46]补 = 00101110,[-46]补 = 11010010;如果要把它们从8位扩展到16位,则
  [+46]补 = 0000000000101110 = 002EH  [-46]补 = 1111111111010010 = FFD2H

转载地址:http://lssli.baihongyu.com/

你可能感兴趣的文章
2017多校联合二1003(hdu6047)Maximum Sequence
查看>>
hdu 5127/2014亚洲(广州)现场赛A - Dogs' Candies(XJB暴力/CDQ分治+动态凸包)
查看>>
51nod 1091 线段的重叠(贪心)
查看>>
51nod 和为k的连续区间(map/暴力)
查看>>
51nod 1344 走格子
查看>>
51nod 1279 扔盘子(单调栈)
查看>>
51nod 1095 Anigram单词(map)
查看>>
hdu 4462 - Scaring the Birds(状态压缩+bfs)
查看>>
导弹拦截问题系列(dp)
查看>>
【动态规划】矩阵连乘问题
查看>>
poj 3624 01背包模板题
查看>>
CTU Open Contest 2016 Hot Air Ballooning
查看>>
CTU Open Contest 2016 Colorful Tribune(附测试数据)
查看>>
16杭州ccpc Equation HDU - 5937(搜索)
查看>>
2011 北京 hdu 4090--GemAnd Prince(搜索)
查看>>
51nod 1287 加农炮(二分/线段树)
查看>>
D - Hexadecimal View HDU - 4054(模拟)进制转换
查看>>
Dijkstra 单源最短路
查看>>
POJ - 3278 Catch That Cow (BFS)
查看>>
hdu 5982(16青岛现场赛)Relic Discovery水题
查看>>