Go 프로그래밍에서 [] byte를 int로 변환하는 방법
TCP를 통해 클라이언트-서버 예제를 만들어야합니다. 클라이언트 측에서는 2 개의 숫자를 읽고 서버로 보냅니다. 내가 직면 한 문제 는 통신이 유형의 데이터 만 허용하기 때문에 에서 []byte
로 변환 할 수 없다는 것 입니다.int
[]byte
변환 할 수있는 방법이 있습니까 []byte
에 int
내가 보내거나 int
서버는?
일부 샘플 코드는 정말 감사하겠습니다.
감사.
( 이 답변을 다시 게시 )
인코딩 / 바이너리의 ByteOrder 를 사용 하여 16, 32, 64 비트 유형에 대해이를 수행 할 수 있습니다.
package main
import "fmt"
import "encoding/binary"
func main() {
var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244}
data := binary.BigEndian.Uint64(mySlice)
fmt.Println(data)
}
바이트 배열에서 시작하여 바이너리 패키지 를 사용 하여 변환을 수행 할 수 있습니다 .
예를 들어 int를 읽으려면 다음을 수행하십시오.
buf := bytes.NewBuffer(b) // b is []byte
myfirstint, err := binary.ReadVarint(buf)
anotherint, err := binary.ReadVarint(buf)
동일한 패키지를 사용하면 일반 읽기 기능을 사용하여 원하는 바이트 순서로 unsigned int 또는 float를 읽을 수 있습니다.
바이트 시퀀스로 /에서 숫자를 인코딩 / 디코딩하는 경우 인코딩 / 바이너리 패키지가 있습니다. 설명서에는 예제가 있습니다. 목차의 예제 섹션을 참조하십시오.
이러한 인코딩 함수는 io.Writer 인터페이스에서 작동합니다 . net.TCPConn 유형 은 io.Writer를 구현하므로 네트워크 연결에 직접 쓰고 읽을 수 있습니다.
연결의 양쪽에 Go 프로그램이있는 경우 encoding / gob 을 사용 하는 것이 좋습니다. gob 사용에 대한 연습은 " Gobs of data " 문서 를 참조하십시오 (자체 포함 된 예제를 보려면 맨 아래로 건너 뛰십시오).
[] byte가 ASCII 바이트 숫자이면 먼저 [] byte를 string 으로 변환하고 string을 int로 변환 하는 strconv
package Atoi
메소드를 사용합니다 .
package main
import (
"fmt"
"strconv"
)
func main() {
byteNumber := []byte("14")
byteToInt, _ := strconv.Atoi(string(byteNumber))
fmt.Println(byteToInt)
}
이동 놀이터-https: //play.golang.org/p/gEzxva8-BGP
var bs []byte
value, _ := strconv.ParseInt(string(bs), 10, 64)
참고 URL : https://stackoverflow.com/questions/11184336/how-to-convert-from-byte-to-int-in-go-programming
'Program Tip' 카테고리의 다른 글
"localhost", 호스트 및 포트의 요점은 무엇입니까? (0) | 2020.11.28 |
---|---|
-g 플래그에도 불구하고 Valgrind가 줄 번호를 표시하지 않음 (Ubuntu 11.10 / VirtualBox에서) (0) | 2020.11.28 |
favicon.ico 파일을 루트가 아닌 경로에 넣는 것이 나쁜 생각입니까? (0) | 2020.11.28 |
푸시 알림 자격 경고 누락 (0) | 2020.11.28 |
NUnit으로 데이터베이스 관련 코드를 어떻게 테스트합니까? (0) | 2020.11.28 |