【问题标题】:How do I convert an integer to a byte in Go如何在 Go 中将整数转换为字节
【发布时间】:2020-02-05 03:51:56
【问题描述】:

我正在生成一个 65 到 90 范围内的随机数(对应于大写字符作为字节的字节表示)。随机数生成器返回一个整数值,我想把它转换成一个字节。

当我说我想将整数转换为字节时,我并不是指数字的字节表示 - 即我不是说 int 66 变成字节 [54 54]。我的意思是,如果 RNG 返回整数 66,我想要一个值为 66 的字节(对应于大写 B)。

【问题讨论】:

标签: go types type-conversion


【解决方案1】:

您应该能够通过简单地执行 character := string(asciiNum) 将任何这些整数转换为 char 值,其中 asciiNum 是您生成的整数,而 character 将是字节值对应于生成的 int

【讨论】:

  • string 会将整数转换为字符串数据类型,即下面的 []byte,所以如果 OP 只想要一个字节,那就有点过头了。
  • 我同意这有点矫枉过正,但它确实返回了一个字节片,然后你可以从character[0] 中获取第一个字节......不过,仅使用byte 类型转换更干净。
  • @openwonk string(n)[0] 仅在整数 n 在 ASCII 范围内时用作整数到字节的转换。见play.golang.org/p/vCHaK8CVyJx
  • @CeriseLimón 是有道理的。我认为您可以使其工作,但是首选使用byte 进行转换。
【解决方案2】:

使用byte() conversion 将整数转换为byte

var n int = 66
b := byte(n)                // b is a byte
fmt.Printf("%c %d\n", b, b) // prints B 66

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2017-03-30
    • 1970-01-01
    • 2017-02-14
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多