📄 商小数处理_2.c
字号:
//int0+int1
#include <stdio.h>
#include <reg51.h>
#include <intrins.h>
unsigned int xx=9111,yy=22;
unsigned long bb;
unsigned char f[8] _at_ 0x30,disp[4] _at_ 0x40,
i _at_ 0x20 ,j _at_ 0x21,point_no _at_ 0x22,point _at_ 0x23;
void chufa()
{while((int)xx/1000==0)
{xx=10*xx; i++;}
while((int)yy/1000==0)
{yy=10*yy;j++;}
bb=xx*(long)10000/yy;
point_no=i+4-j;
}
void hextodec(unsigned long zz,point_no)
{f[7]=0;f[6]=0;f[5]=0;
f[4]=zz/10000; zz=zz%10000;
f[3]=zz/1000; zz=zz%1000;
f[2]=zz/100; zz=zz%100;
f[1]=zz/10; zz=zz%10;
f[0]=zz;
if(point_no>4){disp[0]=f[point_no-3];disp[1]=f[point_no-2];//实际商<1
disp[2]=f[point_no-1];disp[3]=f[point_no];
if(f[point_no-4]>4)disp[0]=disp[0]+1;//四舍五入
if(disp[0]>9){disp[0]=0;disp[1]=disp[1]+1;}
if(disp[1]>9){disp[1]=0;disp[2]=disp[2]+1;}
if(disp[2]>9){disp[2]=0;disp[3]=disp[3]+1;}
point=3;}
else {disp[0]=f[1];disp[1]=f[2]; //实际商>1
disp[2]=f[3];disp[3]=f[4];
if(f[0]>4)disp[0]=disp[0]+1;//四舍五入
if(disp[0]>9){disp[0]=0;disp[1]=disp[1]+1;}
if(disp[1]>9){disp[1]=0;disp[2]=disp[2]+1;}
if(disp[2]>9){disp[2]=0;disp[3]=disp[3]+1;}
point=point_no-1; } }
void main(void)
{ while(1)
{chufa();
hextodec(bb,point_no);}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -