有关 Endian 性和 .Net 的详细信息?

2024-06-29

我有几个关于字节顺序的问题,这些问题足够相关,我保证将它们作为一个问题提出:

1)字节顺序是由.Net还是由硬件决定的?

2)如果是由硬件决定的,我怎样才能在C#中找出硬件的字节序?

3) 字节序是否影响二进制交互,例如 OR、AND、OR 或移位? IE。向右移动一次是否总是会移走最低有效位?

4)我对此表示怀疑,但是不同版本的.Net框架的字节序有区别吗?我认为它们都是一样的,但我已经学会停止假设一些较低级别的细节,例如这样。

如果需要,我可以将这些问题作为不同的问题提出,但我认为任何知道其中一个问题答案的人都可能知道所有问题的答案(或者可以为我指明一个好的方向)。


1)硬件。

2) BitConverter.IsLittleEndian

3) 字节顺序不影响按位运算。向右移位是向最低有效位方向移位。哎呀评论的更新:但是,字节顺序确实会影响二进制输入和输出。当读取或写入大于一个字节的值时(例如,读取int from a BinaryReader或使用BitConverter),你必须考虑字节顺序。一旦正确读入值,所有按位运算都会正常进行。

4) 大多数版本的.NET 都是小端字节序。值得注意的例外包括 XBox 以及 Mono 或 Compact Framework 支持的一些平台。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有关 Endian 性和 .Net 的详细信息? 的相关文章

随机推荐