[go] encoding/binary 패키지를 사용하여 부동 소수점 숫자를 바이너리로 인코딩하는 방법
Go의 encoding/binary
패키지는 데이터를 바이너리로 인코딩하고 디코딩하는 기능을 제공합니다. 이 패키지를 사용하여 부동 소수점 숫자를 바이너리로 인코딩할 수 있습니다.
1. 부동 소수점 숫자를 바이너리로 인코딩하기
다음은 encoding/binary
패키지를 사용하여 부동 소수점 숫자를 바이너리로 인코딩하는 예제 코드입니다.
package main
import (
"encoding/binary"
"fmt"
"math"
"os"
)
func main() {
// 부동 소수점 숫자
num := math.Pi
// 바이너리로 인코딩
buf := make([]byte, 8) // 64비트 부동 소수점 숫자를 인코딩하기 위해 8바이트 버퍼 생성
binary.LittleEndian.PutUint64(buf, math.Float64bits(num)) // 부동 소수점 숫자를 64비트 바이너리로 인코딩하여 버퍼에 저장
// 결과 출력
fmt.Printf("부동 소수점 숫자: %v\n", num)
fmt.Printf("바이너리로 인코딩된 값: %v\n", buf)
// 결과를 바이너리 파일로 저장
file, _ := os.Create("binary.dat")
defer file.Close()
file.Write(buf)
}
위의 예제 코드는 encoding/binary
패키지를 사용하여 64비트 부동 소수점 숫자인 math.Pi
를 바이너리로 인코딩하고, 인코딩된 값을 출력하며 바이너리 파일로 저장하는 방법을 보여줍니다.
2. 바이너리로 인코딩된 부동 소수점 숫자 디코딩하기
바이너리로 인코딩된 부동 소수점 숫자를 디코딩하는 방법은 다음과 같습니다.
package main
import (
"encoding/binary"
"fmt"
"os"
)
func main() {
// 바이너리 파일에서 읽어오기
file, _ := os.Open("binary.dat")
defer file.Close()
buf := make([]byte, 8) // 64비트 부동 소수점 숫자를 디코딩하기 위해 8바이트 버퍼 생성
file.Read(buf)
// 바이너리를 부동 소수점 숫자로 디코딩
num := math.Float64frombits(binary.LittleEndian.Uint64(buf))
// 결과 출력
fmt.Printf("바이너리로 디코딩된 부동 소수점 숫자: %v\n", num)
}
위의 예제 코드는 바이너리 파일에서 64비트 부동 소수점 숫자를 읽어와서 encoding/binary
패키지를 사용하여 디코딩하는 방법을 보여줍니다.
이렇게 encoding/binary
패키지를 사용하여 부동 소수점 숫자를 바이너리로 인코딩하고 디코딩할 수 있습니다.
이상입니다. 도움이 되기를 바랍니다.