深入理解计算机系统家庭作业第二章(2.83-2.90)

/*****************2.83**********************/

(!sx && sy) || (sx && sy && (ux <= uy)) || (!sx && !sy && (ux >= uy))


/*****************2.84**********************/

A.  E = 2; M = 5/4; f = 1/4; V = 5.0
B.  n位小数全为1。 E = n; M = 2 - 1/(2^n); f = 1 - 1/(2^n); V = 2^n * ( 2 - 1/(2^n) ) = 2^(n + 1) - 1
C.  最小规格化数: E = 2 - 2^(k - 1); M = f = 2^(-n); V = 2^E * M; 倒数为1/V


/***********2.85**************/
2^(-16445)
2^(-16382)
2^16384 - 2^16320


/*************2.86*****************/

为了简单起见,省略表格

Hex                M                     E                  V

0x8000          0                     -62                -

0x3f01        257/256             0              257/256

0x4700           1                      8                  -

0x00ff         255/256              -62             2^-62 * 255/256

0xff00

-                      13/8                  -5               13/256


/*************2.87*****************/

1 01110 001       -9/16       1 0110 0010       -9/16

0 10110 101        208         0 1110 1010        208

1 00111 110        7/1024    1 0000 0111       7/1024

0 00000 101       5/2^17      0 0000 0000        0

1 11011 000       -2^12       1 1111 0000        负无穷

0 11000 100         768        0 1111 0000        正无穷


/*************2.88********************/

A.   当x取MAX_INT时不成立,因为此时x转为float时有精度丢失

B.   当 x+y 发生溢出时不成立

C.   成立,虽然double类型不满足结合律,但该表达式永远不会发生溢出

D.   不成立,乘法可能会导致精度溢出

E.   当x = 0  y不等于0时不成立



/***********2.89*************/

float fpwr2(int x)
{
	unsigned exp,frac;
	unsigned u;
	if(x < -149){
		/*Too small. Return 0.0*/
		exp = 0;
		frac = 0;
	}else if(x < -126){
		/*Denormalized result*/
		exp = 0;
		frac = 0x800000 >> (126 - x);
	}else if(x < 128){
		/*Normalized result*/
		exp = x + 127;
		frac = 0;
	}else{
		/*Too big  Return +00*/
		exp = 0xff;
		frac = 0;
	}

	u = exp << 23 | frac;

	return u2f(u);

}



/**************2.90*****************/

A.   11.0010 0100 0011 1111 0110 11

B.   11.001001001001(001...)

C.   223/71 和 22/7 大概相差1/500,故从小数点后第九位开始不同


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值