C#-最近在项目中遇到一个与PC位宽有关的问题:
用C#做了一个软件,处理数据,在xp、win7(都是32位的)下运行一切正常;但是在64为的win7下运行,则会出错,代码如下:
public const float const_times= 18.02f;
private const float standardtimes = 1000.0f;//主机指血值放大倍数
private const float bsvaluetimes = 1000.0f;//主机血糖值放大倍数
//Decode()返回int型数据
record.iValue = (float)Decode(bBuffer, curPos, 5, 2) / 10.00f;
record.uValue = (double)Decode(bBuffer, curPos, 7, 2) / 1000.00f;
record.activity = Decode(bBuffer, curPos, 9, 1);
record.standard = (float)Decode(bBuffer, curPos, 10, 2) * const_times /standardtimes;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看看buffer的定义,数据的长度与操作系统有关
System.IntPtr 通过这个可以判断操作系统的位数 4就是32位 8就是64位
64位系统的 int 还有 float 都与 32位的不同
关注下 decode 这个函数。