C#-最近在项目中遇到一个与PC位宽有关的问题:

发布于 2016-11-09 01:14:57 字数 538 浏览 1373 评论 2

用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清晨说ぺ晚安 2017-06-14 05:46:06

看看buffer的定义,数据的长度与操作系统有关

瑾兮 2016-11-28 05:12:31

System.IntPtr 通过这个可以判断操作系统的位数 4就是32位 8就是64位
64位系统的 int 还有 float 都与 32位的不同
关注下 decode 这个函数。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文