当前位置: 首页 > 面试题库 >

如何将int []转换为uint8 []

向安福
2023-03-14
问题内容

所以,我需要你的帮助。我找不到关于那个话题的任何东西。Golang是一种新鲜出炉的语言,因此对于像我这样的新手来说很难快速找到答案。


问题答案:

预先定义的Go
int类型大小是特定于实现的,是32位还是64位(数字类型)。

这是将big-endian ints 转换为bytes(uint8s)的示例。

package main

import (
    "encoding/binary"
    "fmt"
    "reflect"
)

func IntsToBytesBE(i []int) []byte {
    intSize := int(reflect.TypeOf(i).Elem().Size())
    b := make([]byte, intSize*len(i))
    for n, s := range i {
        switch intSize {
        case 64 / 8:
            binary.BigEndian.PutUint64(b[intSize*n:], uint64(s))
        case 32 / 8:
            binary.BigEndian.PutUint32(b[intSize*n:], uint32(s))
        default:
            panic("unreachable")
        }
    }
    return b
}

func main() {
    i := []int{0, 1, 2, 3}
    fmt.Println("int size:", int(reflect.TypeOf(i[0]).Size()), "bytes")
    fmt.Println("ints:", i)
    fmt.Println("bytes:", IntsToBytesBE(i))
}

输出:

int size: 4 bytes
ints: [0 1 2 3]
bytes: [0 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3]

要么

int size: 8 bytes
ints: [0 1 2 3]
bytes: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3]


 类似资料:
  • 问题内容: 我正在获取ASCII值,并且想将其转换为整数,因为我知道它是整数ASCII值。 这是5的ASCII值。我如何将其转换为整数? 问题答案:

  • 问题内容: 我有一个表示RGB图像的整数数组,想将其转换为字节数组并将其保存到文件中。 在Java中将整数数组转换为字节数组的最佳方法是什么? 问题答案: 正如Brian所说,您需要确定需要什么样的转换。 您是否要将其保存为“正常”图像文件(jpg,png等)? 如果是这样,您可能应该使用Java Image I / O API。 如果要以“原始”格式保存,则必须指定写入字节的顺序,然后使用和NI

  • 问题内容: 如何在Java中将对象转换为int? 问题答案: 如果您确定该对象是: 或者,从Java 7开始,您可以等效地编写: 当心,它可以抛出一个,如果你的对象是不是和你要的对象是。 这样,您就假定对象是一个整数(包装的int),然后将其拆箱为一个int。 是基元,因此不能将其存储为,唯一的方法是将考虑/装箱为,然后存储为。 如果您的对象是,则可以使用方法将其转换为简单的int: 如果您的对象

  • 我在/raw文件夹中有一个名为“max_easy.txt”的txt文件,在这个文件中写了一个数字,在本例中为“0”...我想要一个以0作为Int值的var,我怎么做? 我猜这行给了我一个字符串值,我怎么转换它?

  • 问题内容: 我是Java的新手,想知道double转换为int cast如何工作吗?我知道,只需将低32位转换为int就很容易了,但是将double(64位)转换为int(32位)呢?来自二进制的double中的那64位是Double- precision浮点格式(Mantissa),那么它如何在内部转换为int? 问题答案: 所有这些都记录在JLS的5.1.3节中。 第一步,将浮点数转换为lon

  • 问题内容: 我有一个返回int类型的函数。但是,我只有TAX枚举的值。 如何将TAX枚举值转换为整数? 问题答案: 您需要以某种方式使枚举公开,例如 (顺便说一句,我将名称更改为更常规和易读。) 这是 假设 您要在构造函数中分配值。如果这不是您想要的,则需要向我们提供更多信息。