Go fmt パッケージでは、fmt.Printf の float64 の %b は浮動小数点数を表します。バイナリ形式、特に [10 進数のない科学的形式] として知られています。表記](https://golang.org/pkg/fmt/#hdr-Printing)。この表記法では、strconv.FormatFloat の 'b' 形式に似た 2 のべき乗の指数を使用します。
fmt.Printf("0b%b\n", 255) // 0b11111111 fmt.Printf("%b\n", 1.0) // 4503599627370496p-52
出力は次のようになります:
4503599627370496p-52なれ次のように分解されます:
仮数部は次のことを表します先頭の 1 を除く、数値の小数部分。この場合、4503599627370496 です。
指数は、仮数部を乗算して結果を得る 2 の累乗を示します。実際の浮動小数点値。この場合、指数は -52 です。これは、仮数部に 2^-52 を乗算して、最終値 1.0 を取得することを意味します。
最小の正float64 の subnormal double は、この浮動小数点形式で表現できる最小の正の非ゼロ値です。これは次のように計算されます:
Exp(2, -1022 - 52)
ここで、Exp は指数関数、1022 は float64 のバイアス値です。結果は、ゼロに近いが等しくない非常に小さな数値です:
5e-324
この値は、バイナリで 0X0000000000000001 として表されます。
以上がGo の `fmt.Printf` で `%b` は float64 値をどのように表しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。