2017-01-31 1 views
-2

사용 방법 : Golang: How to convert String to binary representation & Convert string to binary in Go진에 StringText 변환 그리고 반대로 내가 <code>Text</code> (유형 = <code>String</code>)으로 <code>Binary</code> (유형 = <code>String</code>) 그리고 <code>Conversely</code>이 <p>일부 userfull 링크를 이동</p> 사용하여 변환하고자 이동

하지만, 나는 다른 것을 필요로한다.

예를 들어 hello과 같은 텍스트를 binary으로 변환하고 싶습니다. 다음은 이진을 첫 번째 텍스트 (hello)로 변환 할 수 있습니다. 이 gist.github.com/hutt/8978333 같은

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

나를 위해 또한

speed을 (PHP를 사용) importamt입니다.

+0

당신이 "진"에 의해 무엇을 의미합니까? 문자열을 '*****'로 변경하고 마술처럼 다시 변환하는 예는 의미가 없습니다 – JimB

+0

https://gist.github.com/hutt/8978333 (PHP 사용) –

+0

나는 여전히 ' 이해한다. 문자열은 단지 바이트 조각이며,'[] byte'로 직접 변환 될 수 있습니다. 이미 얻을 수있는 "바이너리"입니다. 예상 한 출력을 정확하게 표시하십시오. – JimB

답변

2

각 바이트를 개별적으로 기본 2 표현으로 변환하십시오. strconv.ParseUint을 사용하여 base2를 다시 바이트로 변환 할 수 있습니다.

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

+0

''이진 코드가 아니라면 에러를 표시하지 마라. '.. 예제 :'fmt.Println (base2ToString ("jdfgidjfigjdfidfg"))'어떻게 수정하나요? 쇼 오류 :'패닉 : strconv.ParseUint : 구문 분석 "jdfgidjf": 유효하지 않은 구문'??? 어떻게 고쳐? –

+0

잘못된 입력을 의도적으로 당황스럽게 만들었습니다. 모든 오류를 포착하려면 자유롭게 그렇게 할 수 있습니다. – JimB

+0

오류 처리기를 추가 하시겠습니까? 도와 드릴까요? –