什么是最有效的方式(性能)转换[]uint32
,并从[]byte
在Golang?
例如:
func main() {
source := []uint32{1,2,3}
dest := make([]byte, 4 * len(source))
// source to dest
// ?
check := len(dest)/4
// dest to check
// ?
}
我有一个解决方案,但它包含div,mod和乘法
package main
import (
"fmt"
)
func main() {
source := []uint32{1,2,3}
dest := make([]byte, 4*len(source))
fmt.Println(source)
for start, v := range source {
dest[start*4+0] = byte(v % 256)
dest[start*4+1] = byte(v / 256 % 256)
dest[start*4+2] = byte(v / 256 / 256 % 256)
dest[start*4+3] = byte(v / 256/ 256/ 256% 256)
}
fmt.Println(dest)
check := make([]uint32,cap(dest)/4)
for start := 0; start<len(check); start++ {
check[start] = uint32(dest[start*4+0]) + uint32(dest[start*4+1]) * 256 + uint32(dest[start*4+2]) * 256 * 256 + uint32(dest[start*4+3]) * 256 * 256 * 256
}
fmt.Println(check)
}
我怀疑你是在追逐这样的游乐场
调整LittleEndian
为BigEndian
适当的
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
buf := new(bytes.Buffer)
source := []uint32{1, 2, 3}
err := binary.Write(buf, binary.LittleEndian, source)
if err != nil {
fmt.Println("binary.Write failed:", err)
}
fmt.Printf("Encoded: % x\n", buf.Bytes())
check := make([]uint32, 3)
rbuf := bytes.NewReader(buf.Bytes())
err = binary.Read(rbuf, binary.LittleEndian, &check)
if err != nil {
fmt.Println("binary.Read failed:", err)
}
fmt.Printf("Decoded: %v\n", check)
}
我已经阅读了文档和示例,但我很难将其全部整理在一起。我只是尝试获取一个测试pdf文件,然后将其转换为字节数组,然后获取字节数组并将其转换回pdf文件,然后将pdf文件创建到磁盘上。 它可能没有多大帮助,但这是我目前得到的:
问题内容: 我正在寻找一种将Int的位值强制转换为UInt的方法,反之亦然。例如(为了简单起见,使用8位整数),我想实现以下目标: 首先,我提出了以下解决方案: 但是Apple在“ unsafeBitCast()”文档中指出以下内容: ..注意::破坏了Swift的类型系统的保证;使用时要格外小心。几乎总是有更好的方法来做任何事情。 有谁有更好的方法? 问题答案: 你可以做: 存在许多类似的初始化
问题内容: 无法将image.image转换为[] byte。问题点用虚线包裹。 基本上,我需要new_image为[] byte格式,以便可以将其发送到我的S3存储桶。 谢谢您的帮助。 问题答案: 您需要一个byte.Buffer,而不是bufio.Writer。bytes.Buffer在需要写入器的写入器时使用。bufio.Writer只是在将数据转发到另一个写入器之前将其缓存在内存中。
问题内容: 如果我有RGB小数,例如,我该怎么做才能将其转换为CMYK? 例如: 问题答案: 这是Javascript实现的Python端口。
问题内容: 我正在搜索轻量级API(最好是单个类)以转换 到xml,反之亦然,将XML转换回Map。 例: 结果: 然后回来: 我不想使用JAXB或JSON转换API。只需简单的情况,它就不必处理嵌套的地图或属性或其他任何内容。有什么建议么? 编辑:我创建了一个工作副本并粘贴示例。感谢fvu和Michal Bernhard。 下载最新的XStream框架,“仅核心”就足够了。 不需要转换器或其他任
问题内容: 如何在Python中将HTML实体转换为Unicode,反之亦然? 问题答案: 您需要有BeautifulSoup。