Edited at

Swiftの16進数小数の指数のポイント

More than 1 year has passed since last update.

Swiftの16進数小数で、勘違いしていた部分があったのでまとめを書きました。


Swiftの16進数小数は必ず指数部分を付けないといけない

let a = 0x1.0p0 //OK

let b = 0x1.0 //NG
let c = 0x1 //OK 整数は指数が必要ではない


指数表記はpで始める

let a = 0x1.0p0 //OK

let b = 0x1.0e0 //NG
let c = 1.0e0 //OK 10進の場合はe


指数表記は10進数で表記する

let a = 0x1.0p10 //OK

let b = 0x1.0pa //NG


小数点移動は2進数状態で行われる(ここが盲点)

let a = 0x1.0p1

let b = 0x10.0p0 //10進数で16
let c = 0x2.0p0 //10進数で2
a == b //false
a == c //true

小数点移動は2進数状態で行われることが盲点でした。