如何在 OpenCL 中将 int 转换为 float?
How to cast an int to a float in OpenCL?
我正在 Java 使用 OpenCL 编写 mandelbrot 分形渲染器。在我的内核代码中,我需要将 int
转换为 float
。但是当我说 printf("%d", sizeX, "\n%d", (float) sizeX, "\n\n");
(sizeX
是一个整数)时,我在控制台中得到以下结果:
512
0
确实,sizeX
应该是512,但是为了做进一步的计算,我需要它是一个浮点数。有人知道为什么当我尝试施放它时它总是变成 0 吗?
编辑:
我也尝试通过 float fSizeX = 0.0f + sizeX
来转换它,但这也没有用。
该代码没有产生给定的结果。输出将是 512
,没有任何其他内容。
printf()
方法(以及 format()
方法)只有一个 "format specifying" 参数。你可能想尝试这样的事情:
printf("%d\n%f\n\n", sizeX, (float) sizeX);
此外,%d
格式说明符将在非 int
/Integer
值上抛出 InvaligArgumentException
,因此我改用 %f
。
我正在 Java 使用 OpenCL 编写 mandelbrot 分形渲染器。在我的内核代码中,我需要将 int
转换为 float
。但是当我说 printf("%d", sizeX, "\n%d", (float) sizeX, "\n\n");
(sizeX
是一个整数)时,我在控制台中得到以下结果:
512
0
确实,sizeX
应该是512,但是为了做进一步的计算,我需要它是一个浮点数。有人知道为什么当我尝试施放它时它总是变成 0 吗?
编辑:
我也尝试通过 float fSizeX = 0.0f + sizeX
来转换它,但这也没有用。
该代码没有产生给定的结果。输出将是 512
,没有任何其他内容。
printf()
方法(以及 format()
方法)只有一个 "format specifying" 参数。你可能想尝试这样的事情:
printf("%d\n%f\n\n", sizeX, (float) sizeX);
此外,%d
格式说明符将在非 int
/Integer
值上抛出 InvaligArgumentException
,因此我改用 %f
。