问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

十进制数转二进制浮点数

发布网友 发布时间:2022-04-25 21:37

我来回答

1个回答

热心网友 时间:2022-06-17 17:58

按楼主的要求改完了
#include <math.h>
#include <iostream.h>
#define chang 24
#define fuhao 1 //符号位
#define jieshu 8 //阶数
#define weishu 23 //位数
#define weishuB 32 //尾数
void dayuyizhuanhuan(double shijinshuyoufuhao,int *p);
void main()
{double shijinshu;
int i=0,fudianB[weishuB];
cout<<"请输入一个十进制数"<<endl;
cin>>shijinshu;
//if(fabs(shijinshu)>1)
dayuyizhuanhuan(shijinshu,fudianB);
for(i=0;i<32;i++)
cout<<fudianB[i];
cout<<endl;
}
void dayuyizhuanhuan(double shijinshuyoufuhao,int *p)
{int i=0,j=0,t=0,w=0,x=0,m=0,c=0,guozh[chang],guox[chang],zhengshubufenB[chang],xiaoshubufenB[chang];
double xiaoshubufenD;
int zhengshubufenD;
double shijinshuD;
shijinshuD=fabs(shijinshuyoufuhao);
zhengshubufenD=(int)shijinshuD;
xiaoshubufenD=shijinshuD-zhengshubufenD;
//cout<<zhengshubufenD<<" "<<xiaoshubufenD<<endl;///////
while(zhengshubufenD)//整数部分的转化
{guozh[i]=zhengshubufenD%2;
i++;
zhengshubufenD=zhengshubufenD/2;
}
//cout<<i<<endl;///////
t=i,w=i-1;
for(j=0;j<t;j++)
{zhengshubufenB[j]=guozh[w];
w--;
}
t=weishu-i+1,w=0; //////
//cout<<t<<endl;
while(xiaoshubufenD!=0&&t!=0)//小数部分的转化
{guox[x]=(int)(xiaoshubufenD*2);
//cout<<guox[x];
x++;
xiaoshubufenD=xiaoshubufenD*2-(int)(xiaoshubufenD*2);
t--;
}
//cout<<endl;
//cout<<guox[22]<<" "<<x<<" "<<t<<endl;
m=x,c=0;
//cout<<guox[22]<<endl;
for(j=0;j<m;j++)
{xiaoshubufenB[j]=guox[c];
c++;
}
//cout<<guox[22]<<" "<<c<<" "<<j<<endl;
//int a;//////
//for(a=0;a<x;a++)
//cout<<xiaoshubufenB[a];
//cout<<endl;
int s[fuhao],E[jieshu],guoE[jieshu],jishua=0,jishub=0,jishuc=0,jishud=0;
int ee;
ee=i+127-1;
while(ee)//阶数的转化
{guoE[jishua]=ee%2;
jishua++;
ee=ee/2;
}
if(i==1)
{jishub=jishua,jishuc=jishua-1;
E[jishud]=0;
for(jishud=1;jishud<8;jishud++)
{E[jishud]=guoE[jishuc];
jishuc--;
}
}
else
{
jishub=jishua,jishuc=jishua-1;
for(jishud=0;jishud<jishub;jishud++)
{E[jishud]=guoE[jishuc];
jishuc--;
}
}
if(shijinshuyoufuhao>0)//符号位
s[0]=0;
else
s[0]=1;
int jishue=0,jishuw=0,jishux=0,*q;
q=p;
*q=s[0];
for(q=(p+1);q<=(p+8);q++)//阶数的输入
{*q=E[jishue];
jishue++;
}
if((i+x-1)<23)//尾数的输入
{
if(i>1)
{
for(q=(p+9);q<=(p+8+i-1);q++)
{*q=zhengshubufenB[jishuw+1];
jishuw++;
}
for(q=(p+8+i);q<=(p+8+i-1+x);q++)
{*q=xiaoshubufenB[jishux];
jishux++;
}
for(q=(p+x+8+i);q<=(p+31);q++)
{*q=0;
}
}
else
{
for(q=(p+9);q<=(p+8+x);q++)
{
*q=xiaoshubufenB[jishux];
jishux++;
}
for(q=(p+x+8+1);q<=(p+31);q++)
{*q=0;
}

}

}

else
{for(q=(p+9);q<=(p+8+i-1);q++)
{*q=zhengshubufenB[jishuw+1];
jishuw++;
}
for(q=(p+8+i);q<=(p+8+i-1+x);q++)
{*q=xiaoshubufenB[jishux];
jishux++;
}
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
地球内部能量来源于什么 地球内部的热量究竟是从何而来?地球存在了这么久为什么地热一直没散 ... 失当造句 举措失当造句用举措失当造句 眼睛提示你的9种疾病 中年人眼睛突然模糊 我妈妈说她最近视力不如从前了 《少年派的奇幻漂流》结局 《少年派的奇幻漂流》三个故事和三个故事的解读? - 知乎 今天,我后面的女生拿了我的修正带然后在我的修正带刻上我的名字,这是... 看三年级读书手抄报内容,不如来看看怎么画简单又漂亮的手抄报吧 我国目前有哪些控制网络金融风险的措施 金融危机防治措施? 高级人力资源管理师属于职业资格吗 “人力资源管理师”和“人力资源市场从业资格”是一个资质吗? 谢谢! 亚洲金融危机后,采取了哪些措施解救四大行,如何理解这一时期化解和防范金融风险的*措施及效果? 人力资源师职业资格证 防范金融风险的措施有哪些 助理人力资源管理师是执业资格吗 企业人力资源管理师二级这是职称还是执业资格? 中国采取哪些措施应对金融危机,这些措施有什么作用? 人力资源管理师证是执业资格证吗? 国家对待金融危机采取了哪些措施? 人力资源管理师是职业资格证书吗? 人力资源管理师属于经济师吗 cfa和cpa哪个比较难考,考出来有什么用 求CFA、CPA、ACCA FRM考取难度排名和实用性排名 另外金融学专业最好考哪个? CPA证书和CFA证书哪个比较难考?哪个比较实用? CFA考试到底有多难?难道比高考还要难吗?? 会计资格证和CFA哪个难? 型号:huawfl gra-ul10 cmiit id:2014cp6334是华为高配吗 骨密度z值-1~0是什么意思 三年级读书小报 复变函数∣(z-3)/(z-2)∣≥1的区域表示为 贴吧中H-L-Y-Z什么意思 linux shell if [[ ! -z $1 ]];是什么意思? 数字信号处理中z-1什么意思 2 1 6 1 z.西欧m (z)-1,2-二氯溴乙烯 黑莓z10-1-2-3-4是什么意思? 离散时间系统的系统函数H(z)=z&#47;(z-1),则系统是低通,高通,带通带阻中的哪种?怎么判断? 手机怎样查电费余额查询 有小学生五言诗句吗? 写出10首五言绝句古诗? 古诗五言绝句有哪些? 谁能给我10首古诗.要从小学一年级到初中一年级都没学过的 最好是五言绝句 越短越好记越好 小学必背的五言绝句 李白的五言绝句有哪些 适合初一学生背的五言绝句?拜托各位大神 小学生中秋节古诗五言绝句