dq62957 2016-11-10 04:29
浏览 90

使用基于字节序的Go使用编码/二进制将整数转换为字节数组

I have written the function FromBytes which converts bytes to integer format and passes it to IP4() based on endianness as follows:

 type IP4 uint32

 func FromBytes(ip []byte) IP4 {
       var pi IP4
       buf := bytes.NewReader(ip)
       if <little endian>
            err := binary.Read(buf, binary.LittleEndian, &pi)
       else
            err := binary.Read(buf, binary.BigEndian, &pi)
       if err != nil {
               fmt.Println("binary.Read failed:", err)
        }
       return IP4(pi)
}

I need help writing a function which will convert from integer to bytes:

func (ip IP4) Octets() (a, b, c, d byte) {
    if <little endian>
        // code to convert from integer to bytes for little endian
    } else {
        // code to convert from integer to bytes for big endian
    }
    return
}
  • 写回答

1条回答 默认 最新

  • dongyou6768 2016-11-10 05:48
    关注
    b := make([]byte, 4) // 4 bytes for uint32.
    
    binary.BigEndian.PutUint32(b, uint32(yourIP4))
    
    // and
    
    binary.LittleEndian.PutUint32(b, uint32(yourIP4))
    
    评论

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题