如何在 Go 编程中将 \[\]byte 转换为 int

新手上路,请多包涵

我需要通过 TCP 创建一个客户端-服务器示例。在客户端,我读取了 2 个数字并将它们发送到服务器。我面临的问题是我无法从 []byte 转换为 int ,因为通信只接受 []byte 类型的数据。

有什么方法可以将 []byte 转换为 int 或者我可以发送 int 到服务器?

一些示例代码将非常感激。

谢谢。

原文由 Emanuel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您可以使用编码/二进制的 ByteOrder 为 16、32、64 位类型执行此操作

package main

import "fmt"
import "encoding/binary"

func main() {
    var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244}
    data := binary.BigEndian.Uint64(mySlice)
    fmt.Println(data)
}

原文由 David Budworth 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果 []byte 是 ASCII 字节数,那么首先将 []byte 转换为字符串并使用 strconvAtoi 将字符串转换为 int 的方法。

 package main
import (
    "fmt"
    "strconv"
)

func main() {
    byteNumber := []byte("14")
    byteToInt, _ := strconv.Atoi(string(byteNumber))
    fmt.Println(byteToInt)
}

去游乐场

原文由 Tinkaal Gogoi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题