• 大小: 2KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-11-27
  • 语言: C/C++
  • 标签:

资源简介

用c模拟浮点数硬件除法 有四舍五入及特殊情况分析

资源截图

代码片段和文件信息

#include 

typedef unsigned short word;
typedef unsigned long dwrd;

dwrd divide(dwrd xdwrd y);

union{
    float f;
    dwrd i;
}uvwz;

int main()
{
    for(;;)
    {
    scanf(“%f“ &u.f);
    scanf(“%f“ &v.f);
    printf(“Divident:u:%x\n“u.i);
    printf(“Divisor:v:%x\n“v.i);
    w.i=divide(u.iv.i);
    printf(“fdiv :      w:%f\n“w.f);
    printf(“fdiv :    0xW:%x\n“w.i);
    z.f=u.f/v.f;
    
    printf(“computer:  w1:%f\n“z.f);
    printf(“computer:0xW1:%x\n“z.i);
    printf(“--------- ----------\n“);
    }
return 0;
}        

dwrd divide(dwrd xdwrd y)
{
    dwrd p=0r=0;
    dwrd y1nymdc;
    int st;
    int i=0j=0k=0;
    d=( x & 0x80000000)^(y & 0x80000000);
    s=x&0x7f800000;  //被除数的阶码 
    t=y&0x7f800000;  //除数的阶码 
    y1=(y|0x800000)<<8;  //被除数的尾数处理 
    y1=y1>>2;     //防止数位

评论

共有 条评论