b2[1] = uint8(v2 >> 16)
// | 00000000 | 00000000 | 00000001 | 00000001 | 右移24位 转成uint8后等于 0
// 下面是右移后的数据
// | | | | 00000000 |
b2[0] = uint8(v2 >> 24)
fmt.Printf("%+vn", b2)
// 所以最终将uint32转成[]byte数组输出为
// [0 0 1 1]
}
小端模式下
// 在上面我们讲过,小端刚好和大端相反的,所以在转成小端模式的时候,只要将[]byte数组的下标首尾对换一下位置就可以了
func f3() {
var v3 uint32
var b3 [4]byte
v3 = 257
// 将 256转成二进制就是
// | 00000000 | 00000000 | 00000001 | 00000001 |
// | b3[0] | b3[1] | b3[2] | [3] | // 这里表示b3数组每个下标里面存放的值
// 这里直接使用将uint32l强转成uint8
// | 00000000 0000000 00000001 | 00000001 直接转成uint8后等于 1
// |---这部分go在强转的时候扔掉---|
b3[0] = uint8(v3)
// | 00000000 | 00000000 | 00000001 | 00000001 | 右移8位 转成uint8后等于 1
// 下面是右移后的数据
// | | 00000000 | 00000000 | 00000001 |
b3[1] = uint8(v3 >> 8)
// | 00000000 | 00000000 | 00000001 | 00000001 | 右移16位 转成uint8后等于 0
// 下面是右移后的数据
// | | | 00000000 | 00000000 |
b3[2] = uint8(v3 >> 16)
// | 00000000 | 00000000 | 00000001 | 00000001 | 右移24位 转成uint8后等于 0
// 下面是右移后的数据
// | | | | 00000000 |
b3[3] = uint8(v3 >> 24)
fmt.Printf("%+vn", b3)
// 所以最终将uint32转成[]byte数组输出为
// [1 1 0 0 ]
}
go转换demo
//整形转换成字节
func IntToBytes(n int) []byte {
x := int32(n)
bytesBuffer := bytes.NewBuffer([]byte{})
binary.Write(bytesBuffer, binary.BigEndian, x)
return bytesBuffer.Bytes()
}
//字节转换成整形
func BytesToInt(b []byte) int {
bytesBuffer := bytes.NewBuffer(b)
var x int32
binary.Read(bytesBuffer, binary.BigEndian, &x)
return int(x)
}
总结
以上所述是小编给大家介绍的go语言中int和byte转换方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对易采站长站网站的支持!









