作者tkcn (小安)
看板C_Sharp
标题[问题] 从 Stream 读取 int 或 float
时间Sat Sep 3 21:48:24 2005
小弟最近在写的程式
需要将很多的 float 资料读进程式
为了减少存放 float 档案的大小
我希望能够直接把 float 的四个 byte 直接写出串流,或着从串流中读进
请问有没有什麽现成的函式能更使用呢
除了 float 以外,也需要适用於 int 的方法
谢谢大家 m(_ _)m
---
目前在用的方法:
转成byte:
float a=123.456;
byte[] b=new byte[4];
unsafe{
float *p=&a;
b[0]=*(((byte*)p)+0);
b[1]=*(((byte*)p)+1);
b[2]=*(((byte*)p)+2);
b[3]=*(((byte*)p)+3);
}
转成float:
int c=b[3];
c=c<<8;
c=c|b[2];
c=c<<8;
c=c|b[1];
c=c<<8;
c=c|b[0];
unsafe{
float d=*(float*)(&c);
System.Console.WriteLine(d);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.114.198.105
1F:推 EricTsai:BinaryReader/Writer? 140.113.91.10 09/03
2F:推 tkcn:非常感谢 59.114.198.105 09/03