【问题标题】:Print an OpenCL cl_uchar in hex format using cout in C++?使用 C++ 中的 cout 以十六进制格式打印 OpenCL cl_uchar?
【发布时间】:2012-01-11 03:08:20
【问题描述】:

我正在尝试验证我的指针是否到位,我想以十六进制格式打印 cl_uchar(无符号字符 OpenCL 类型)的值。我试过了:

cout << "Data matrix 0,3 = " << clMatrixPerm->data_matrix->elements[4] << endl;

cout << "Data matrix 0,3 = " << hex << clMatrixPerm->data_matrix->elements[4] << endl;

其中clMatrixPerm->data_matrix->elements[4] 是要打印的数组中的数据。在这两种情况下,Data matrix 0,3 = 之后都没有输出。我能够使用 printf 的解决方法,因此我知道数据已正确分配,但如果可能,我想使用 cout 打印它。

【问题讨论】:

  • 将其转换为 int 类型有效吗?
  • 是的,但我希望能够看到它的十六进制。我也尝试将其转换为 unsigned char,但没有成功。
  • 最佳答案given here 在我的平台上为cl_uchar 工作。
  • 感谢詹姆斯,这很有效。我决定使用将数据转换为 int 然后使用 hex cout 运算符的解决方案。我认为这就是 anthony-arnold 的意思,但直到我看了你的链接我才明白。
  • @James 您可能想在此处添加它作为答案,以便可以接受并且很容易找到以供将来参考:D

标签: c++ hex opencl cout


【解决方案1】:

简单

cout << "Data matrix 0,3 = " << hex << static_cast<unsigned int>(clMatrixPerm->data_matrix->elements[4]) << endl;

【讨论】:

    猜你喜欢
    • 2020-05-01
    • 2013-03-31
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2010-10-03
    • 2015-12-31
    相关资源
    最近更新 更多