decodebind128函数
概要:
#include <math.h> #ifdef __STDC_IEC_60559_DFP__ void decodebind128(_Decimal128 * restrict xptr, const unsigned char encptr[restrict static 16]); #endif
描述:
ISO/IEC 60559标准规定了两种不同方案,用于在十进制浮点数的对象表示中编码有效数字:① 基于十进制编码(将3个十进制数字压缩为10个位。);② 基于二进制编码(作为二进制整数。)。同一值使用不同编码方案,字节表示不同;但解码后可以得到相同值。实现可以采用任一编码方案。encodedecdN、decodedecdN、encodebindN、decodebindN等函数提供了采用指定编码方案的外部十进制数据与实现对应的十进制浮点类型之间的转换。
以_Decimal32类型浮点数1.25df为例,两种编码方案的对照关系如下图所示:
该函数将参数encptr指向的16元素数组(每个数组元素占8个位,采用基于二进制编码的编码方案。)解释为ISO/IEC 60559标准的_Decimal128编码。
数组中字节顺序遵循宏__STDC_ENDIAN_NATIVE__指定的字节序。
该函数将指定代码转换成_Decimal128类型浮点值,并将转换结果存入参数xptr指向的对象中。
该函数会保留编码值,并且不会引发浮点异常。如果编码是非规范的,该函数可能会生成规范表示(canonical representation)。
参数:
_Decimal128 * restrict xptr
参数是指向_Decimal128类型对象的指针,且是访问指向对象的唯一方式。
const unsigned char encptr[restrict static 16]
参数是指向const unsigned char类型对象的指针,指向的数组至少包含16个数组元素。
返回值:
无。
范例:
|
|
输出:
The implementation does not support decodebind128 function.
相关内容:
| decodebind32 | _Decimal32类型的将参数指向对象解释为有效数字基于二进制编码的编码的函数。 |
| decodebind64 | _Decimal64类型的将参数指向对象解释为有效数字基于二进制编码的编码的函数。 |
| encodebind128 | _Decimal128类型的将参数指向对象转换为有效数字基于二进制编码的编码的函数。 |
主要参考资料: