首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Go中将[4]uint8转换为uint32?

如何在Go中将[4]uint8转换为uint32?
EN

Stack Overflow用户
提问于 2011-09-12 01:52:32
回答 2查看 9.9K关注 0票数 11

如何将go的类型从uint8转换为unit32?

只需编写代码:

代码语言:javascript
运行
复制
package main

import (
    "fmt"
)

func main() {
    uInt8 := []uint8{0,1,2,3}
    var uInt32 uint32
    uInt32 = uint32(uInt8)
    fmt.Printf("%v to %v\n", uInt8, uInt32)
}

~>6g test.go && 6l -o测试测试6 && ./test

test.go:10:无法将uInt8 (类型[]uint8)转换为类型uint32

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-12 02:26:54

代码语言:javascript
运行
复制
package main

import (
    "encoding/binary"
    "fmt"
)

func main() {
    u8 := []uint8{0, 1, 2, 3}
    u32LE := binary.LittleEndian.Uint32(u8)
    fmt.Println("little-endian:", u8, "to", u32LE)
    u32BE := binary.BigEndian.Uint32(u8)
    fmt.Println("big-endian:   ", u8, "to", u32BE)
}

输出:

代码语言:javascript
运行
复制
little-endian: [0 1 2 3] to 50462976
big-endian:    [0 1 2 3] to 66051

Go binary package函数以一系列移位的形式实现。

代码语言:javascript
运行
复制
func (littleEndian) Uint32(b []byte) uint32 {
    return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24
}

func (bigEndian) Uint32(b []byte) uint32 {
    return uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24
}
票数 16
EN

Stack Overflow用户

发布于 2011-09-13 06:37:07

您是否正在尝试使用following

代码语言:javascript
运行
复制
t := []int{1, 2, 3, 4}
s := make([]interface{}, len(t))
for i, v := range t {
    s[i] = v
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7380158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档