我有十六进制值0x5a800000000b,我正在尝试在C中获取printf语句以将其打印到控制台.
到目前为止(因为我在C中没用)我可以使用以下语法来打印'b':
printf("Hex value%x\n", value);
Run Code Online (Sandbox Code Playgroud)
该值存储在整数类型U32中,但在尝试%llx,%lx的所有不同组合后,我只是不断收到编译器警告.
我猜我的printf语法错误,但我似乎无法找到正确的%选项,有人可以帮助我吗?
谢谢
这不是问题printf.
问题是32位变量不能保存该值0x5a800000000b.32位只能容纳8个十六进制数字:0x0000000b.因此b输出.
要存储这么大的值,您应该使用64位变量.
long long value = 0x5a800000000bLL
Run Code Online (Sandbox Code Playgroud)
另请注意L最后的两倍.它告诉编译器该常量也是一个long long.
然后你可以使用%llx的printf格式字符串.
| 归档时间: |
|
| 查看次数: |
13868 次 |
| 最近记录: |