当前位置:  开发笔记 > 编程语言 > 正文

在VB.Net中将字节数组转换为整数

如何解决《在VB.Net中将字节数组转换为整数》经验,为你挑选了2个好方法。

我想知道将字节数组(长度为4)转换为整数的最佳方法是在vb.net中?我知道BitConverter,但是做一个函数调用做一些应该可以通过复制4个字节的内存完成的事情似乎是一种浪费.同样,如何将单个/双精度从它的二进制表示转换为单个/双变量.



1> mdb..:

"复制内存字节"是.NET不是特别适合的(而VB.NET甚至更少).因此,除非切换到C是一个选项,否则函数调用几乎是不可避免的.

BitConverter是经过深思熟虑,经过测试的功能.当然,您可以通过执行类似(在C#中)的操作来避免它:

myInt = (*pbyte) | (*(pbyte + 1) << 8)  | (*(pbyte + 2) << 16) | (*(pbyte + 3) << 24);

(顺便说一下,在将字节数组转换为整数时,BitConverter 正是为您做的...).

但是,这段代码:

比BitConverter等效的更难阅读和理解;

不执行BitConverter为您执行的任何错误检查;

不像BitConverter那样区分little-endian和big-endian表示.

换句话说:你可能会"保存"一个函数调用,但最终你会变得更糟(甚至假设你没有引入任何错误).一般来说,.NET Framework设计得非常非常好,除非遇到实际(性能)问题,否则不应该再考虑使用它的功能.


为您做的...).

2> Jon Skeet..:

我知道BitConverter,但是做一个函数调用做一些应该可以通过复制4个字节的内存完成的事情似乎是一种浪费.

然而,我认为情况是"当一个方法调用完全符合我的要求时,尝试手动编写一种有效的方法来进行编码似乎是一种浪费."

除非您完全确信在这段代码中存在性能瓶颈,否则请使用框架提供的功能.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有