登录
首页 >  Golang >  Go问答

将某些内容转换为字节

来源:stackoverflow

时间:2024-03-02 23:48:24 460浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《将某些内容转换为字节》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我想使用我找到的代码将变量(我在本例中使用 int)转换为字节:

func IntToByteArray(num int64) []byte {
    size := int(unsafe.Sizeof(num))
    arr := make([]byte, size)
    for i := 0 ; i < size ; i++ {
        byt := *(*uint32)(unsafe.Pointer(uintptr(unsafe.Pointer(&num)) + uintptr(i)))
        arr[i] = byte(byt)
    }
    return arr
}

func main(){
    println(IntToByteArray(1456))
}

但是它给我的输出是这样的:[8/8]0xc00001a0d0 有人可以解释一下为什么我会得到这个结果吗? 字节数组到底是什么?


解决方案


package main

import "fmt"

func IntToByteArray(num int64) []byte {
    r := make([]byte, 8)
    for i := 0; i < len(r); i++ {
        r[i] = byte(num >> (i * 8) & 255)
    }

    return r
}

func main() {
    fmt.Println(IntToByteArray(65280))
}

这假设是小端字节序。

正如其他人所建议的,包含的软件包更加灵活且经过测试。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>