ZHCUAQ1F july 2015 – april 2023
除了矢量运算之外,还提供 printf() 支持以输出矢量数据。请参阅 1.2 版《OpenCL 规范》中的第 6.12.13 节,了解使用 printf() 设置矢量数据类型格式的详细信息。请注意,米6体育平台手机版_好二三四 (TI) C6000 的实现方式与 OpenCL 规范在以下方面具有差别:
即 ll
长度修饰符指定,以下 d、i、o、u、x 或 X 转换指定符适用于 longlongn 或 ulonglongn 参数。如 OpenCL 规范中所述,将 l
长度修饰符用于 64 位 doublen 参数。
以下示例声明、初始化并打印四个 32 位浮点值的矢量,四个 8 位 unsigned char 值的矢量,以及两个 64 位 long long 值的矢量。
float4 f4 = (float4)(1.0f, 2.0f, 3.0f, 4.0f);
uchar4 uc = (uchar4)(0xFA, 0xFB, 0xFC, 0xFD);
longlong2 bigNums = (longlong2)(600000000000, -600000000000);
printf("f4 = %2.2v4hlf\n", f);
printf("uc = %#v4hhx\n", uc);
printf("bigNums = %+v2lld\n", bigNums);
此示例打印包含浮点值的矢量,使用 %2.2v4hlf
格式字符串,输出至少 2 位宽度的值,精度为 2 (2.2
),矢量长度为 4 (v4
),具有 floatn 长度修饰符 (hl
),使用 float 类型指定符 (f
)。
此示例打印包含 uchar 值的矢量,使用 %#v4hhx
格式字符串,输出 0x 前缀 (#
),后跟长度为 4 的矢量 (v4
),具有 charn 或 ucharn 长度修饰符 (hh
),使用小写十六进制标记 (x
)。
此示例打印包含 long long 值的矢量,使用 %+v2lld
格式字符串,输出具有 + 或 - 前缀的值 (+
),后跟长度为 2 的矢量 (v2
),具有 longlongn 或 ulonglongn 长度修饰符 (ll
),使用十进制标记 (d
)。
/* Output */
f4 = 1.00,2.00,3.00,4.00
uc = 0xfa,0xfb,0xfc,0xfd
bigNums = +600000000000,-600000000000