【零基础向】软考之路(第一章)计算机系统知识(第三节)

写在前面:

       本系列文章用于记录本人软考学习历程,适用于零基础人群,每天不定期更新,如果读者哪里不理解或者发现哪里理解的有问题,欢迎评论,一起进步学习,祝大家都能顺利通过考试~大笑

第三节 数据表示

    本节主要是考察进制转换,也就是计算能力,需要熟记各个进制之间的转换关系,一定要多做题!!!

    一般出题都是会给你一个十进制数,让你求原码、反码、补码、移码。

  • 什么是机器数?

    各种数值在计算机中表示的形式就是机器数,其特点就是采用二进制计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值。

      机器数有无符号数和带符号数之分。无符号数表示正数,在机器数中没有符号位。对于带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。这里需要说明几个概念性的东西。

      1.纯整数:小数点的位置在机器数的最低位之后。

      2.纯小数:小数点的位置在机器数的最高位之前(符号位之后)。

     为了方便运算,带符号的机器数可采用原码、反码、补码、移码等不同的编码方法,机器数的这些编码方法称为码制。

      二进制转十进制的小技巧之1248规则

      假设我们有一个八位的二进制数1111 1111,那么他每一位其实代表的是一个十进制整数,请看如下分析:

      0000 0001   代表的是1

      0000 0010   代表的是2

      0000 0100   代表的是4

      0000 1000   代表的是8

      以此类推下来,1111 1111 也就是 128+64+32+16+8+4+2+1 = 255,不明白可以留言或者多看几遍。

  • 如何计算一个数的原码、反码、补码和移码?

     1.原码的表示法。在给定机器字长n(也就是采用n个二进制位表示数据)的前提下,将X的原码记为[X]

      这里需要分两种情况来讨论,即纯整数和纯小数。

      若X是纯整数,则当X>=0时,值不变,仍为本来的数,直接转为二进制即可。当X<0时,为2的n-1次方再加上X的绝对值。

      若X是纯小数,则当X>=0时,值不变。当X<0时,值为1加上X的绝对值。

    例题1.1  若机器字长为8,分别写出一下数的原码+1,-1,+127,-127,+45,-45,+0.5,-0.5

    [+1] = 0000 0001            [-1]原 = 1000 0001  (129也就是 2的7次方再加上-1的绝对值) 

    [+127]原 = 0111 1111     [-127]原 = 1111 1111  (255也就是 2的7次方再加上-127的绝对值)  

    [+45]原 = 0010 1101       [-45]原 = 1010 1101  (173也就是 2的7次方再加上-45的绝对值)  

    [+0.5]原 = 0@100 0000    [-0.5]原 = 1@100 0000 (@符号代表小数点)

    [+0]原 = 0000 0000         [-0]原 = 1000 0000

     2.反码的表示法。

      若X是纯整数,则当X>=0时,值不变,仍为本来的数,直接转为二进制即可。当X<0时,为2的n次方减一再加上X。

      若X是纯小数,则当X>=0时,值不变。当X<0时,值为2减去2的-(n-1)次方加上X。

    [+1] = 0000 0001            [-1]反  = 1111 1110  (254也就是  256-2=254) 

    [+127]反  = 0111 1111     [-127]反  = 1000 0000  (128也就是  256-128=128)  

    [+45]反  = 0010 1101       [-45]反  = 1101 0010  (210也就是  256-46=210)  

    [+0.5]反  = 0@100 0000   [-0.5]反  = 1@011 1111 (@符号代表小数点 )

    [+0] = 0000 0000         [-0] = 1111 1111

    3.补码的表示法。

      若X是纯整数,则当X>=0时,值不变,仍为本来的数,直接转为二进制即可。当X<0时,为2的n次方加上X。

      若X是纯小数,则当X>=0时,值不变。当X<0时,值为2加上X。

    [+1] = 0000 0001            [-1]  = 1111 1111  (255也就是 256-1=255) 

    [+127]  = 0111 1111        [-127]  = 1000 0001  (129也就是 256-127=129)  

    [+45]  = 0010 1101          [-45]  = 1101 0011  (211也就是 256-45=211)  

    [+0.5]  = 0@100 0000      [-0.5]  = 1@100 0000 (@符号代表小数点 )

    [+0] = 0000 0000            [-0] = 0000 0000

    4.移码表示法。规定偏移量为2的n-1次方,这里字长为8,则偏移量为128。

        若X是纯整数,则[X]=128 + X,若X是纯小数,则[X]=1+X。

    [+1] = 1000 0001            [-1]  = 0111 1111  (127也就是 128-1  =127) 

    [+127]  = 1111 1111    [-127]移 = 0000 0001  (1也就是 128-127 =1)  

    [+45]  = 1010 1101      [-45]  = 0101 0011  (83也就是 128-45 = 83)  

    [+0.5] = 1@100 0000   [-0.5]  = 0@100 0000 (@符号代表小数点 )

    [+0] = 1000 0000        [-0]= 1000 0000

考题解析:

 利用IEEE754标准将数176.0625表示为单精度浮点数。

 第一步,将十进制转为二进制(机器数)

 (176.0625)10 (1011 0000.0001)2

    对二进制数进行规格化处理: 10110000.0001 = 1.01100000001 X 2的7次方

   这样就保证了b0为1,而且小数点在第一位,去掉b0,扩展为单精度浮点数所规定的23位位数

    01100000001000000000000

   然后求阶码,上述指数为7,单精度规定指数偏移量为127,7+127 = 134  E=134

    因为是正数 S=0

   所以 最终结果为0 10000110  01100000001000000000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值