문제:
16진수 문자열(예: "0xC40C5253")을 다음으로 변환 IEEE-754 변환을 사용하는 부동 소수점 값은 다음과 같은 문제로 입증되었습니다. strconv.ParseFloat 함수. 대체 접근 방식이 있습니까?
답변:
16진수 문자열을 부동 소수점 값으로 효과적으로 변환하려면 다음 단계를 고려하세요.
다음은 이러한 단계를 보여주는 예제 코드 조각입니다.
import ( "fmt" "strconv" "unsafe" ) func main() { s := "C40C5253" n, err := strconv.ParseUint(s, 16, 32) if err != nil { panic(err) } n2 := uint32(n) f := *(*float32)(unsafe.Pointer(&n2)) fmt.Println(f) }
참고:
또는 수학 패키지는 내장된 안전하지 않은 패키지 대신 사용할 수 있는 uint32 값을 float32로 변환하는 math.Float32frombits() 함수:
f := math.Float32frombits(n2)
위 내용은 Go에서 16진수 문자열을 IEEE-754 부동 소수점 값으로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!