首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitConverter返回错误的字节?

BitConverter返回错误的字节?
EN

Stack Overflow用户
提问于 2016-10-06 09:04:31
回答 2查看 1.5K关注 0票数 0

我正在尝试将值转换为字节数组。

例如,我有:

代码语言:javascript
复制
var b1 = BitConverter.GetBytes(0x85);
var b2 = BitConverter.GetBytes(12345);

b1的值是:

代码语言:javascript
复制
{byte[4]}
    [0]: 133
    [1]: 0
    [2]: 0
    [3]: 0

b2

代码语言:javascript
复制
{byte[4]}
    [0]: 57
    [1]: 48
    [2]: 0
    [3]: 0

为什么字节数组总是大小为4?是否可以返回正确的字节数(即。不包括尾随0)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-06 09:07:06

四个字节是32位整数的正确字节数.如果您希望它被截断到表示一个数字所需的最小字节数,那么您必须自己去做。实际上,你所要寻找的应用程序很少。BitConverter用于获取某些基元类型的精确内存表示。有助于二进制文件格式或网络协议的东西。对于这些事情,您通常希望为结果获得相同的长度,这是基于传入的类型。

附带注意:您是否希望0产生一个空数组?那-1呢?是new byte [] { 255 }还是new byte [] { 255, 255, 255, 255 }

票数 7
EN

Stack Overflow用户

发布于 2016-10-06 09:08:02

您正在传递一个具有32位的int。您可以传递一个short,然后得到2个字节:

代码语言:javascript
复制
var b1 = BitConverter.GetBytes((short)0x85);
var b2 = BitConverter.GetBytes((short)12345);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39891887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档