How Convert StringText To Binary And Conversely Using Go

huangapple go评论96阅读模式
英文:

How Convert StringText To Binary And Conversely Using Go

问题

你好!以下是你要翻译的内容:

我想要使用Go将Text(类型为String)转换为Binary(类型为String),反之亦然。

一些有用的链接:
https://stackoverflow.com/questions/37349071/golang-how-to-convert-string-to-binary-representation/37350639
https://stackoverflow.com/questions/32685687/convert-string-to-binary-in-go

但是我需要另外一个。

我想要一个将文本(例如hello)转换为二进制的示例,然后可以将该二进制转换回原始文本(hello)。

var hash_text := hash("hello") // 例如返回 *****
var unhash_text := unhash(hash_text) // 返回 hello

类似于这个 gist.github.com/hutt/8978333(使用 PHP 实现)。

对我来说,速度重要

英文:

i want Convert Text(type=String) To Binary(type=String) And Conversely Using Go

some userfull link :
https://stackoverflow.com/questions/37349071/golang-how-to-convert-string-to-binary-representation/37350639 &
https://stackoverflow.com/questions/32685687/convert-string-to-binary-in-go

but i need another.

i want example convert a text like hello to binary. and next can convert then binary to first text(hello).

var hash_text := hash("hello")//example return *****
var unhash_text := unhash(hash_text);//return hello

like this gist.github.com/hutt/8978333 (using php)

also speed for me is importamt.

答案1

得分: 2

将每个字节单独转换为其二进制表示。您可以使用strconv.ParseUint将二进制转换回字节。

func stringToBase2(s string) string {
    var buf bytes.Buffer
    for i := 0; i < len(s); i++ {
        fmt.Fprintf(&buf, "%08b", s[i])
    }
    return buf.String()
}

func base2ToString(s string) string {
    var out []byte
    for i := 0; i+8 <= len(s); i += 8 {
        b, err := strconv.ParseUint(s[i:i+8], 2, 8)
        if err != nil {
            panic(err)
        }
        out = append(out, byte(b))
    }
    return string(out)
}

https://play.golang.org/p/cLvoPHZ-hH

英文:

Convert each byte individually to its base 2 representation. You can use strconv.ParseUint to convert the base2 back to bytes.

func stringToBase2(s string) string {
	var buf bytes.Buffer
	for i := 0; i &lt; len(s); i++ {
		fmt.Fprintf(&amp;buf, &quot;%08b&quot;, s[i])
	}
	return buf.String()
}

func base2ToString(s string) string {
	var out []byte
	for i := 0; i+8 &lt;= len(s); i += 8 {
		b, err := strconv.ParseUint(s[i:i+8], 2, 8)
		if err != nil {
			panic(err)
		}
		out = append(out, byte(b))
	}
	return string(out)
}

https://play.golang.org/p/cLvoPHZ-hH

huangapple
  • 本文由 发表于 2017年1月31日 23:00:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/41960747.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定