-
千万里不及你
这是一个简单的方法: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 表示的可靠方法。
-
翻翻过去那场雪
首先,“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"。
-
Cats萌萌
另一种方法func strToBinary(s string, base int) []byte { var b []byte for _, c := range s { b = strconv.AppendInt(b, int64(c), base) } return b}