Swift 以 16 为基数的科学记数法

Swift scientific notation in base 16

我是 Swift 语言的新手,正在使用它。我知道在大多数语言中 1.5e3 表示 1.5 * 10 ^3,在 Swift 中也是如此。但是,当涉及到 16 进制时,我很难理解它。下面是2个例子,希望有人能解释一下它们是什么:

println(0x12e3)
println(0x12p3)

结果是:

4835
144.0

第一个示例没有使用科学记数法 - 因为 e 是十六进制的有效数字,这是数字 12E3,十进制为 4835。

(1 * 4096) + (2 * 256) + (14 * 16) + (3 * 1) = 4835

第二个示例是十六进制数 12(十进制为 18)乘以二进制指数 (2 ^ 3),即 8。

8 x 18 = 144

此表示法在 Swift language documentation 中进行了描述。