从真值到机器数

从真值到机器数

**真值:**现实世界中的数据,使用+/-表示数据的正负,采用十进制表示数据的值。

现实世界中数据的分类:

img

**现实世界数据表示:**一般形式和科学计数法

机器中的数据:在机器中以固定位数的byte位置,每个位置以0/1存储的数据

从真值到机器数:

例:真值

整数:12-967

小数:39.12-0.000000098-32.102388

科学计数法:12X10^0-0.33333X10^-2

如何把上述真值转化为机器数呢?

  1. 如何解决正负号的表示问题,使用一位byte位置即可表示+/-两种情况
  2. 如何把真值的整数和小数的数值部分进行表示。整数数值部分采用除以2取余数的方式(把余数按照从下到上,byte位置为从右向左的方法排列进去),小数分为整数数值部分和小数数值部分,如果直接通过除2取余的方式(小数部分乘2,取整)存储在内存中,将无法区分(或者需要额外的条件)那些部分是小数的整数数值部分,那些部分是小数的数值部分。故需要新的方式表示小数点的位置。
  3. 小数点的位置采用约定其位置的方式进行表示,即小数类型的真值要转化为-0.32102388X10^2的科学计数法的形式
  4. 科学计数法表示十进制数据的三个要素:符号+/1,小数部分,阶次部分。

总结:

  1. 真值经过整理后需要表示的数据有:整数、科学计数法表示的小数
  2. 机器表示数据的byte位是固定的(与CPU的处理数据的位数相关)
  3. 正负号采用一位byte位置即可表示
  4. 机器中的定点数和浮点数用来确定小数点的表示问题
  5. 先把真值转化为机器中的定点数或者浮点数,再对齐进行原码、反码、补码的表示。
  6. 机器中的数值采用补码的形式进行表示

补码的计算

以8位byte计算

-123 = 2^8 - 0111 1011B 
=  1 0000 0000 - 0111 1011
=  1 0000 0000
  -0 0111 1011(同或)
------------------
   0 1000 0100+1
   0 1000 0101

两个数相加(异或)


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值