gpt4 book ai didi

C printf整数类型U32

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:31 28 4
gpt4 key购买 nike

我有十六进制值 0x5a800000000b,我正尝试在 C 中获取 printf 语句以将其打印到控制台。

到目前为止(因为我在 C 中毫无用处)我能够使用语法打印 'b':

printf("Hex value%x\n", value);

该值存储在整数类型 U32 中,但在尝试了 %llx、%lx 的所有不同组合后,我总是收到编译器警告。

我猜我的 printf 语法有误,但我似乎找不到正确的 % 选项,有人可以帮我吗?

谢谢

最佳答案

这不是 printf 的问题。

问题是 32 位变量不能保存值 0x5a800000000b。 32 位只能容纳 8 个十六进制数字:0x0000000b。因此 b 输出。

要存储这么大的值,您应该使用 64 位变量。

long long value = 0x5a800000000bLL

还要注意末尾的双 L。它告诉编译器该常量也是一个 long long

然后就可以在printf格式字符串中使用%llx

关于C printf整数类型U32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14356304/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com