将整数放在缓冲区和左边的零区中?

时间:2016-09-17 23:24:50

标签: go

我尝试实施协议,目前在此步骤中遇到问题:

The big-endian binary representation of the sequence number SHALL be placed in a 16-octet buffer and padded (on the left) with zeros.

序列号为int

我认为创建16个八位字节缓冲区的正确方法是这样的:

buf := make([]byte, 16)

但是,我不确定如何将序列号放在缓冲区中以符合上述要求?

1 个答案:

答案 0 :(得分:1)

听起来你想要这样的东西:

func seqToBuffer(seq int) []byte {
    buf := make([]byte, 16)
    for i := len(buf) - 1; seq != 0; i-- {
        buf[i] = byte(seq & 0xff)
        seq >>= 8
    }
    return buf
}