fbpx
维基百科

半精度浮点数

半精度浮点数 是一种被计算机使用的二进制浮点数据类型半精度浮点数使用2个字节(16位)来存储。

IEEE 754-2008中,它被称作binary16。这种数据类型只适合存储对精度要求不高的数字,不适合用来计算。

半精度浮点数是一种较新的浮点类型。 英伟达在2002年初发布的Cg语言中称它作 half 类型,并首次在2002年末发布的GeForce FX中实现。[1]ILM 当时正在寻找一种拥有高动态范围,且不需过多消耗硬盘和内存,并且能像单精度浮点数双精度浮点数那样被用来进行浮点计算的图像格式。[2]SGI的John Airey领导的硬件加速可编程着色小组在1997年发明了作为'bali'设计工作的一部分的s10e5数据类型,曾在SIGGRAPH 2000年的论文[3]中介绍过。(见章节 4.3)并且在美国专利7518615[4]中被进一步记录。

半精度浮点数可在OpenEXRJPEG XROpenGLCg语言、D3DX等计算机图形环境中使用。其与8位或16位整数相比具有动态范围高的优点,可以使高对比度图片中更多细节得以保留。与单精度浮点数相比,它的优点是只需要一半的存储空间和带宽(但是会牺牲精度和数值范围)。[2]

定义

IEEE 754 标准指定了一个 binary16 要有如下的格式:

  • Sign bit(符号位): 1 bit
  • Exponent width(指数位宽): 5 bits
  • Significand precision(尾数精度): 11 bits (有10位被显式存储)

按如下顺序排列:

 

除非指数位全是0,否则就会假定隐藏的起始位是1。因此只有10位尾数在内存中被显示出来,而总精度是11位。据IEEE 754的说法,虽然尾数只有10位,但是尾数精度是11位的(log10(211) ≈ 3.311 十进制数).

例子

0 01111 0000000000 = 1 0 01111 0000000001 = 1 + 2−10 = 1.0009765625 (1之后的最接近的数) 1 10000 0000000000 = −2 0 11110 1111111111 = 65504 (max half precision) 0 00001 0000000000 = 2−14 ≈ 6.10352 × 10−5 (最小正指数) 0 00000 1111111111 = 2−14 - 2−24 ≈ 6.09756 × 10−5 (最大尾数) 0 00000 0000000001 = 2−24 ≈ 5.96046 × 10−8 (最小正尾数) 0 00000 0000000000 = 0 1 00000 0000000000 = −0 0 11111 0000000000 = infinity 1 11111 0000000000 = −infinity 0 01101 0101010101 = 0.333251953125 ≈ 1/3 

由于尾数的位数是奇数,所以默认情况下,1/3 这类的数会像双精度浮点数一样四舍五入。

参阅

  • IEEE 754: IEEE二进制浮点数算数标准 (IEEE 754)
  • ISO/IEC 10967, Language Independent Arithmetic
  • Primitive data type
  • RGBE image format

引用

  1. ^ Nvidia
  2. ^ 2.0 2.1 存档副本. [2015-10-01]. (原始内容于2013-05-08). 
  3. ^ 存档副本 (PDF). [2015-10-01]. (原始内容 (PDF)于2017-08-12). 
  4. ^ 存档副本. [2015-10-01]. (原始内容于2015-09-24). 

外部链接

  • Minifloats(页面存档备份,存于互联网档案馆) (in Survey of Floating-Point Formats
  • OpenEXR site(页面存档备份,存于互联网档案馆
  • Half precision constants(页面存档备份,存于互联网档案馆) from D3DX
  • Fast Half Float Conversions
  • Analog devices variant(页面存档备份,存于互联网档案馆) (four-bit exponent)
  • C source code to convert between IEEE double, single, and half precision can be found here(页面存档备份,存于互联网档案馆
  • C# source code implementing a half-precision floating-point data type can be found here[永久失效連結]
  • Java source code for half-precision floating-point conversion
  • Half precision floating point for one of the extended GCC features(页面存档备份,存于互联网档案馆
  • [1](页面存档备份,存于互联网档案馆

半精度浮点数, 是一种被计算机使用的二进制浮点数据类型, 使用2个字节, 16位, 来存储, 在ieee, 2008中, 它被称作binary16, 这种数据类型只适合存储对精度要求不高的数字, 不适合用来计算, 是一种较新的浮点类型, 英伟达在2002年初发布的cg语言中称它作, half, 类型, 并首次在2002年末发布的geforce, fx中实现, 当时正在寻找一种拥有高动态范围, 且不需过多消耗硬盘和内存, 并且能像单精度浮点数和双精度浮点数那样被用来进行浮点计算的图像格式, 由sgi的john, ai. 半精度浮点数 是一种被计算机使用的二进制浮点数据类型 半精度浮点数使用2个字节 16位 来存储 在IEEE 754 2008中 它被称作binary16 这种数据类型只适合存储对精度要求不高的数字 不适合用来计算 半精度浮点数是一种较新的浮点类型 英伟达在2002年初发布的Cg语言中称它作 half 类型 并首次在2002年末发布的GeForce FX中实现 1 ILM 当时正在寻找一种拥有高动态范围 且不需过多消耗硬盘和内存 并且能像单精度浮点数和双精度浮点数那样被用来进行浮点计算的图像格式 2 由SGI的John Airey领导的硬件加速可编程着色小组在1997年发明了作为 bali 设计工作的一部分的s10e5数据类型 曾在SIGGRAPH 2000年的论文 3 中介绍过 见章节 4 3 并且在美国专利7518615 4 中被进一步记录 半精度浮点数可在OpenEXR JPEG XR OpenGL Cg语言 D3DX等计算机图形环境中使用 其与8位或16位整数相比具有动态范围高的优点 可以使高对比度图片中更多细节得以保留 与单精度浮点数相比 它的优点是只需要一半的存储空间和带宽 但是会牺牲精度和数值范围 2 目录 1 定义 1 1 例子 2 参阅 3 引用 4 外部链接定义 编辑IEEE 754 标准指定了一个 binary16 要有如下的格式 Sign bit 符号位 1 bit Exponent width 指数位宽 5 bits Significand precision 尾数精度 11 bits 有10位被显式存储 按如下顺序排列 除非指数位全是0 否则就会假定隐藏的起始位是1 因此只有10位尾数在内存中被显示出来 而总精度是11位 据IEEE 754的说法 虽然尾数只有10位 但是尾数精度是11位的 log10 211 3 311 十进制数 例子 编辑 0 01111 0000000000 1 0 01111 0000000001 1 2 10 1 0009765625 1之后的最接近的数 1 10000 0000000000 2 0 11110 1111111111 65504 max half precision 0 00001 0000000000 2 14 6 10352 10 5 最小正指数 0 00000 1111111111 2 14 2 24 6 09756 10 5 最大尾数 0 00000 0000000001 2 24 5 96046 10 8 最小正尾数 0 00000 0000000000 0 1 00000 0000000000 0 0 11111 0000000000 infinity 1 11111 0000000000 infinity 0 01101 0101010101 0 333251953125 1 3 由于尾数的位数是奇数 所以默认情况下 1 3 这类的数会像双精度浮点数一样四舍五入 参阅 编辑IEEE 754 IEEE二进制浮点数算数标准 IEEE 754 ISO IEC 10967 Language Independent Arithmetic Primitive data type RGBE image format引用 编辑 Nvidia 2 0 2 1 存档副本 2015 10 01 原始内容存档于2013 05 08 存档副本 PDF 2015 10 01 原始内容存档 PDF 于2017 08 12 存档副本 2015 10 01 原始内容存档于2015 09 24 外部链接 编辑Minifloats 页面存档备份 存于互联网档案馆 in Survey of Floating Point Formats OpenEXR site 页面存档备份 存于互联网档案馆 Half precision constants 页面存档备份 存于互联网档案馆 from D3DX OpenGL treatment of half precision Fast Half Float Conversions Analog devices variant 页面存档备份 存于互联网档案馆 four bit exponent C source code to convert between IEEE double single and half precision can be found here 页面存档备份 存于互联网档案馆 C source code implementing a half precision floating point data type can be found here 永久失效連結 Java source code for half precision floating point conversion Half precision floating point for one of the extended GCC features 页面存档备份 存于互联网档案馆 1 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 半精度浮点数 amp oldid 63397753, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。