Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26670
  • 博文数量: 6
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-09 15:51
文章存档

2011年(6)

我的朋友

分类: LINUX

2011-09-20 19:56:00

无符号加法其实就是整数模2^w加。
无符号乘法就是整数模2^w乘。
补码加法就是先实行无符号加法,再执行U2T(即将无符号数转换成补码数)。
补码乘法就是先实行无符号乘法,再执行U2T。
因此,无符号加/乘和补码加/乘有相同的位表示。
-x和~x+1的结果完全一样。
整数乘以常数:将常数表示为二进制,再通过适当的移位。
整数除以2的幂:x/y
分两种情况
1.x >= 0,y > 0:结果是[x/y]。
2.x <= 0,y < 0:结果是[(x + y -1)/y];
一个关于浮点的练习题
对于一种具有n位小数的浮点格式,给出不能准确描述的最小正整数的公式(因为要想准确表示它需要n+1位小数)。假设阶码字段长度k足够大,可以表示的阶码范围不会限制这个问题。
这个问题的课后答案是2^(n+1) +1
我的理解是:根据IEEE浮点标准V=(-1)^s  *M*2^E。E是阶码,M是尾数。以下取s=0
当E=2^n时,根据M的变化,V可以取到的范围是1~2^(n+1)-1。
而取M=1,E=n+1时,V=2^(n+1)。
而2^(n+1)+1则需要n+1位小数才能表示。
师兄,我的理解正确否?


阅读(1483) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~