为了账号安全,请及时绑定邮箱和手机立即绑定

Golang:如何将字符串转换为二进制表示

Golang:如何将字符串转换为二进制表示

Go
SMILET 2022-01-10 17:37:30
在golang中,如何将字符串转换为二进制字符串?示例:“CC”变为 10000111000011
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

这是一个简单的方法:


func stringToBin(s string) (binString string) {

    for _, c := range s {

        binString = fmt.Sprintf("%s%b",binString, c)

    }

    return 

}

正如我在对另一个答案的评论中包含的那样,您还可以使用变体"%s%.8b",如果您需要或想要表示 8 位,它将用前导零填充字符串......但是,如果您的角色需要大于 8 位,这将没有任何区别表示,如希腊字符:


Φ 1110100110


λ 1110111011


μ 1110111100


或者这些数学符号打印 14 位:


≠ 10001001100000


⊂ 10001010000010


⋅ 10001011000101


所以请注意:这里的示例是一个简单的演示,它满足原始帖子中的标准,而不是使用 Unicode 代码点的 base2 表示的可靠方法。


查看完整回答
反对 回复 2022-01-10
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

首先,“CC”的二进制表示是“0100001101000011”,你必须注意前导0,否则你的字符串可以通过多种不同的方式获得。


func binary(s string) string {

    res := ""

    for _, c := range s {

        res = fmt.Sprintf("%s%.8b", res, c)

    }

    return res

}

这会产生所需的输出:`binary("CC") = "0100001101000011"。


查看完整回答
反对 回复 2022-01-10
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

另一种方法


func strToBinary(s string, base int) []byte {


    var b []byte


    for _, c := range s {

        b = strconv.AppendInt(b, int64(c), base)

    }


    return b

}


查看完整回答
反对 回复 2022-01-10
  • 3 回答
  • 0 关注
  • 877 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号