博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解计算机系统第二章习题
阅读量:4964 次
发布时间:2019-06-12

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

题2.72

A.sizeof(int)返回的是size_t类型,是无符号类型,maxbytes-sizeof(val)时会被转换为无符号类型,所以条件>=0恒成立。

B.if(maxbytes >= sizeof(val))

 

题2.73

int saturating_add(int x, int y){     int Tmin = 1<<(sizeof(int) << 3 - 1);     int Tmax = 1<<(sizeof(int) << 3 - 1) - 1;    int sum = x+y;     if ((x < 0) && (y < 0) && (sum >= 0))        return Tmin;     if ((x >= 0) && (y >= 0) && (sum < 0))        return Tmax;     return  sum;}

 

题2.74 

 仅仅考虑符号位的变化。

int  tsub_ovf(int x; int y){    int z = x - y;    unsigned int msb = 1 << (sizeof(int) << 3 - 1);    return (z&msb == y&msb) && (z&msb != x&msb);}

 

题2.75

unsigned unsigned_high_prod(unsigned x, unsigned y){    int w = sizeof(int)<<3;    return signed_high_prod(x,y) + (x>>(w-1))&y + (y>>(w-1))&x;}

题2.84

A  E=2,M=5/4,f = 1/4, V = 1.25*2^2

B  最大的整数奇数,那么二进制位表示时,最末尾肯定是1,最大的,所以其他位也为1。n位小数(0.11....11  n个1)。

    以浮点数表示且不舍入,所以E = n;指数k位,因为 E= e - Bias,Bias = 2^(k-1) -1 , e =n-1+2^(k-1), f = 2^(n + 1) - 1; M = 1+f/(2^(n+1))

C  最小的规格化数,e为1,其他位为0,E =1 - (2^(k-1) - 1) = 2- 2^(k-1); M = 1; V = 1 *2^(2-2^(K-1));

其倒数1/V = 2^(2^(k-1)-2),对应E = 2^(k-1)-2 , M = 1, f=0。

 

转载于:https://www.cnblogs.com/amongv587/articles/4334117.html

你可能感兴趣的文章
[Locked] Wiggle Sort
查看>>
deque
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
Python模块调用
查看>>
委托的调用
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>