1.
float s_decode(unchar *p)
{
float f1;
unsigned int uni_i;
unsigned char n;
f1=0;
for(n=0;n<3;n++)
{
uni_i=(unsigned int)p[n];
f1=f1*100+(float)uni_i;
}
for(n=p[n];n<6;n++)
f1=f1/10;
return f1;
}2.
void s_encode(float f1,uchar *p)
{
unsigned char i,j,n;
unsigned int i_i;
float f2;
f2=f1;
for(i=0;i<6;i++)
{
if(f2<1.0)
break;
else
f2=f2/10;
}
p[3]=i;
f2=f1;
for(n=0;n<3;n++)
{
for(j=i;j!=2;)
{
if(j<2)
{
f2=f2*10;
j++;
}
else if(j>2)
{
f2=f2/10;
j--;
}
}
}
i_i=(unsigned int)f2;
p[n]=(unsigned char)(i_i&0x00ff);
f2=f2-(float)i_i;
i=0;
}
float s_decode(unchar *p)
{
float f1;
unsigned int uni_i;
unsigned char n;
f1=0;
for(n=0;n<3;n++)
{
uni_i=(unsigned int)p[n];
f1=f1*100+(float)uni_i;
}
for(n=p[n];n<6;n++)
f1=f1/10;
return f1;
}2.
void s_encode(float f1,uchar *p)
{
unsigned char i,j,n;
unsigned int i_i;
float f2;
f2=f1;
for(i=0;i<6;i++)
{
if(f2<1.0)
break;
else
f2=f2/10;
}
p[3]=i;
f2=f1;
for(n=0;n<3;n++)
{
for(j=i;j!=2;)
{
if(j<2)
{
f2=f2*10;
j++;
}
else if(j>2)
{
f2=f2/10;
j--;
}
}
}
i_i=(unsigned int)f2;
p[n]=(unsigned char)(i_i&0x00ff);
f2=f2-(float)i_i;
i=0;
}
解决方案 »
- DELPHI中如何控制FASTREPORT中的页面大小?
- 关于一个工程中单元数太多的解决方案
- 打包的难题,100分相送!!!请高手相助。
- 请教一个sql的问题
- 请问我怎样动态的远程获得ClientDataSet的DataSetProvider?????
- 急待解决的两个关于打印的问题!!!
- 怎样通过控件数组的方式,操作控件啊?
- 在delphi中应用汇编 程序如使系统时钟变慢
- 女程序员出路在哪里?我听很多师兄说,大四公司来招聘都找男的,女生一般都去考研,或当文职,5555555
- 有了Handle,将要怎样?
- 安装了RWXLS控件,为什么在ActiveX组件页看不到这个控件呢?有谁知道。。。
- TactionList是什么东东,在什么地方可以找到?
[c] int *P;
[pascal] P: ^Integer; 2 类型转化
[c] a = (int)b;
[pascal] a := Integer(b);
var n:integer;
begin
result:=0;
for n:=0 to 2 do
begin
result:=result*100+ord(p[n]);
end;
n:=ord(p[3]);
while n<6 do
begin
result:=result/10;
inc(n);
end;
end;procedure s_encode(f1:single;p:pchar);
var f2:single;i,j,n,i_i:integer;
begin
f2:=f1;
i:=0;
while i<6 do
begin
if f2<1.0 then
break;
f2:=f2/10;
inc(i);
end;
p[3]:=chr(i);
f2:=f1;
n:=0;
while n<3 do
begin
j:=i;
while j<>2 do
begin
if j<2 then
begin
f2:=f2*10;
inc(j);
end
else
begin
f2:=f2/10;
dec(j);
end;
inc(j);
end;
inc(i);
end;
i_i:=trunc(f2);
p[n]:=chr(i_i and $00ff);
f2:=f2-i_i;
i:=0;end;