登录
首页 >  Golang >  Go问答

设置字节数组的位操作指南

来源:stackoverflow

时间:2024-03-07 21:27:17 207浏览 收藏

今天golang学习网给大家带来了《设置字节数组的位操作指南》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我正在尝试使用位创建自定义字节数组。这意味着我想设置字节数组的位。 这是演示:

bits := []int{ 0,0,0,0,0,0,0,0, 1,0,0,0,0,0,0,1 }

func ToByteArray(in []int) ([]byte,error){
    out := make([]byte,len(in)/8,len(in)/8)
    if len(in) == 0 || len(in)%8 != 0{
        return out,fmt.Errorf("input array is not dividable by 8")
    }
    for i:=0; i < len(in); i++{
        cell := i/8
        pos := i%8
        //cant assign shift to byte
        out[cell] |= in[i] << pos
    }   
    return out,nil
}

spew.Dump( ToByteArray(bits) )

我尝试将移位分配给一个字节,但它不适用。如何从 0 和 1 的整数数组创建字节数组?


解决方案


移位的结果是整数,而不是字节:

out[cell] |= byte(in[i] << pos)

终于介绍完啦!小伙伴们,这篇关于《设置字节数组的位操作指南》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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