3 回答

TA貢獻1784條經(jīng)驗 獲得超9個贊
這是一個簡單的方法:
func stringToBin(s string) (binString string) {
for _, c := range s {
binString = fmt.Sprintf("%s%b",binString, c)
}
return
}
正如我在對另一個答案的評論中包含的那樣,您還可以使用變體"%s%.8b",如果您需要或想要表示 8 位,它將用前導零填充字符串......但是,如果您的角色需要大于 8 位,這將沒有任何區(qū)別表示,如希臘字符:
Φ 1110100110
λ 1110111011
μ 1110111100
或者這些數(shù)學符號打印 14 位:
≠ 10001001100000
? 10001010000010
? 10001011000101
所以請注意:這里的示例是一個簡單的演示,它滿足原始帖子中的標準,而不是使用 Unicode 代碼點的 base2 表示的可靠方法。

TA貢獻2065條經(jīng)驗 獲得超14個贊
首先,“CC”的二進制表示是“0100001101000011”,你必須注意前導0,否則你的字符串可以通過多種不同的方式獲得。
func binary(s string) string {
res := ""
for _, c := range s {
res = fmt.Sprintf("%s%.8b", res, c)
}
return res
}
這會產(chǎn)生所需的輸出:`binary("CC") = "0100001101000011"。

TA貢獻1805條經(jīng)驗 獲得超9個贊
另一種方法
func strToBinary(s string, base int) []byte {
var b []byte
for _, c := range s {
b = strconv.AppendInt(b, int64(c), base)
}
return b
}
- 3 回答
- 0 關(guān)注
- 857 瀏覽
添加回答
舉報