binary.BigEndian 下的 PutUint32 Uint32

 PutUnit32的官方文档如下,也就是说这个byte切片每个位置存放的数字都是不同的含义,如果将这个数组的每个位置进行输出是看不出什么结果的。

func (bigEndian) PutUint32(b []byte, v uint32) {
	_ = b[3] // early bounds check to guarantee safety of writes below
	b[0] = byte(v >> 24)
	b[1] = byte(v >> 16)
	b[2] = byte(v >> 8)
	b[3] = byte(v)
}

测试代码:

package main

import (
	"encoding/binary"
	"fmt"
)

func main() {

	var buf [4]byte
	pkglen := uint32(12312312)
	binary.BigEndian.PutUint32(buf[0:4], pkglen)
	for i := 0; i <= 3; i++ {
		fmt.Printf("buf[%d]=%d\n", i,buf[i])
	}
	pkgLen := binary.BigEndian.Uint32(buf[0:4])
	
	fmt.Println(pkgLen)
}

输出如下:

buf[0]=0
buf[1]=187
buf[2]=222
buf[3]=248
12312312

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值