convert from to (byte [] array)

/// <summary>
/// Serializes the entity to binary.
/// </summary>
/// <param name="entity">The Entity to serialize.</param>
/// <value>A byte array that contains the serialized entity.</value>
public byte[] SerializeBinary(object entity)
{
    MemoryStream ms = new MemoryStream();
    BinaryFormatter bf = new BinaryFormatter();
    bf.Serialize(ms, entity);
    return ms.ToArray();
}

/// <summary>
/// Deserializes the binary data to an object instance.
/// </summary>
/// <param name="bytes">The byte array that contains binary serialized datas.</param>
/// <returns>The deserialized instance</returns>
public object DeserializeBinary(byte[] bytes)
{
    MemoryStream ms = new MemoryStream(bytes);
    BinaryFormatter bf = new BinaryFormatter();
    return bf.Deserialize(ms);
}


//convert from (byte[] len = 2)   to  a (short)
public int toShort(byte[] b, int startPos)
{
    // 0x00 0x11 [0x22 0x33] 0x44 0x55
    short ret = (short)((b[startPos] << 8) | b[startPos + 1]);

    //      [0x22] [0x33]

    //       0x00 0x22
    //<< 8 = 0x22 0x00
    // |          0x33
    // =    [0x22 0x33]
    return ret;
}

// convert from integer to (byte[] array len = 4)
public byte[] toByteArray(int b)
{
    byte[] ba = new byte[4];

    // e.g. b = 0x7890ABCD

    // ba[0] ba[1] ba[2] ba[3]
    // 0x78  0x90  0xAB  xCD

    ba[0] = (byte)(((b) & 0xFF000000) >> 24);
    //   0x7890ABCD &
    //   0xFF000000
    // = 0x 78 00 00 00
    // >> 24
    // = 0x 00 00 00 78 == 0x78

    ba[1] = (byte)((b & 0x00FF0000) >> 16);
    ba[2] = (byte)((b & 0x0000FF00) >> 8);
    ba[3] = (byte)((b & 0x000000FF) >> 0);

    return ba;
}

// convert from short to (byte[] array len = 2)
public byte[] shortToByteArray(ushort b)
{
    byte[] ba = new byte[2];

    ba[0] = (byte)(((b) & 0xFF00) >> 8);

    ba[1] = (byte)((b & 0x00FF) >> 0);

    return ba;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值