You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

int32小端序序列化及跨大小端架构反序列化的实现疑问与咨询

int32小端序序列化及跨大小端架构反序列化的实现疑问与咨询

我现在有个关于int32小端序序列化的疑问想请教大家,先贴一下我实现的序列化代码:

public byte[] Serialize(int value)
{
    return new byte[4]
    {
        (byte)value,
        (byte)(value >> 8),
        (byte)(value >> 16),
        (byte)(value >> 24)
    };
}

我特意强制把整数按小端序来序列化,拿数字2000举个例子:

它的二进制表示是:
00000000 00000000 00000111 11010000

  • (byte)value会把第一个字节设为11010000,对应十进制的208;
  • (byte)(value >> 8)是把数值右移8位,得到00000000 00000000 00000000 00000111,取第一个字节就是00000111,对应十进制的7;
  • 后面两个字节都是0;

最终得到的字节数组就是{ 208, 7, 0, 0 },二进制看起来就是11010000 00000111 00000000 00000000!

这地方我有点搞不懂了:既然小端序架构里数字就是按这种顺序存储的,那我们用位运算处理后得到的这个顺序,是不是反而等价于大端序的顺序?另外关于反序列化的部分...

备注:内容来源于stack exchange,提问作者Руслан Сорока

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:54:31