深入理解计算机系统 家庭作业 2.94
来源:互联网 发布:淘宝好评怎么删除图片 编辑:程序博客网 时间:2024/05/22 04:31
2f
#include <stdio.h>
typedef unsigned float_bits;
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start,int len)
{
int i;
for(i = 0;i < len;i++)
{
printf(" %.2x",start[i]);
}
printf("\n");
}
void show_float(float x)
{
show_bytes((byte_pointer) &x,sizeof(float));
}
float_bits float_twice(float_bits f)
{
unsigned sign = f>>31;
unsigned exp = f>>23&0xff;
unsigned frac = f&0x7fffff;
if((exp == 0xff) || (exp == 0xfe))
return f;
if((exp < 0xfe) && (exp != 0))
exp = exp + 1;
if(exp == 0)
{
if((frac & 0x10000000) == 0x10000000 )
{
exp = exp + 1;
frac = frac & 0x7fffffff;
frac = frac << 1;
}
else
frac = frac << 1;
}
return (sign<<31) | (exp<<23) | frac;
}
int main()
{
unsigned u,ur;
float f,fr;
for(u = 0;u <= 0x0fffffffu;u++)
{
f =*((float *)&u);
f=f*2;
ur = float_twice(u);
fr = *((float *)&ur);
if(fr == f)
printf("%u: %x %x ok\n",u,f,fr);
else
{
printf("%u: error\n",u);
printf("the f is \n");
show_float(f);
printf("th fr is %\n");
show_float(fr);
printf("%x %x\n",f,fr);
return -1;
}
}
return 0;
}
- 深入理解计算机系统 家庭作业 2.94
- 《深入理解计算机系统》家庭作业
- 深入理解计算机系统家庭作业答案
- 深入理解计算机系统 家庭作业2.68
- 深入理解计算机系统 家庭作业2.69
- 深入理解计算机系统 家庭作业 2.70
- 深入理解计算机系统 家庭作业2.75
- 深入理解计算机系统 家庭作业 2.78
- 深入理解计算机系统 家庭作业 2.78
- 深入理解计算机系统 家庭作业 2.80
- 深入理解计算机系统 家庭作业 2.91
- 深入理解计算机系统 家庭作业 2.92
- 深入理解计算机系统 家庭作业 2.93
- 深入理解计算机系统家庭作业第三章
- 深入理解计算机系统家庭作业第五章
- 深入理解计算机系统家庭作业第六章
- 深入理解计算机系统(第二版) 家庭作业 第三章
- 深入理解计算机系统(第二版) 家庭作业 第四章
- 01初次接触WCF——面向服务
- 密码原来如此重要
- 收集到的一些样式之二
- Android使用WebView浏览网页
- MFC——文件打开和保存对话框(CFileDialog)
- 深入理解计算机系统 家庭作业 2.94
- C语言和java中传参内幕
- [NOI2004]郁闷的出纳员
- 8种web监听器详解
- Android 软件测试日志文件抓取
- OpenCV自带的CamShift算法解读
- Servlet容器的分类之我的学习
- c++标准库容器使用概览
- 【LeetCode】Sort Colors