u中的uint4变量值打印

时间:2011-10-20 12:27:48

标签: c++ c printf

在我的程序中,我有uint4 x变量。 我必须将它的值打印到stdout。

如何使用printf实现它?

提前谢谢

注意:uint4 x 4个无符号整数的结构

5 个答案:

答案 0 :(得分:8)

uint4不是标准类型,也没有通用的定义。我知道uint4引用其中任何一个的项目:

  • 32位无符号整数类型(1)
  • 4位无符号整数类型,实现为位域(2)
  • 4个无符号整数的结构(3)

你可以这样打印出来:

// case (1)
#include <inttypes.h>
typedef uint32_t uint4;
uint4 x = 42;
printf("x = %" PRIu32, x);

// case (2)
typedef struct { unsigned value : 4; } uint4;
uint4 x = { 7 };
printf("x = %u", x.value);

// case (3)
typedef struct { unsigned x, y, z, w; } uint4;
uint4 quad = { 1, 2, 3, 4 };
printf("x = %u, y = %u, z = %u, w = %u", quad.x, quad.y, quad.z, quad.w);

答案 1 :(得分:3)

使用十六进制数字的格式说明符,宽度为1(因为4位数字的最大值可以为0xf):

printf("%1x", x);

答案 2 :(得分:2)

如果这是CUDA类型uint4,那么您可以在C中这样做:

uint4 v;

printf("v = { %u, %u, %u, %u }\n", v.x, v.y, v.z, v.w);

答案 3 :(得分:1)

printf("x=%d\n", x);不起作用吗?

什么是uint4?

答案 4 :(得分:0)

使用int而不是uint4,我以前从未听说过uint4。

#include <stdio.h>

int main()
{
    int x = 1;
    printf("Value of x: %i", x);
    return 0;
}

或者,如果您只想存储正值,则可以使用unsigned int