gpt4 book ai didi

c - 以十六进制和八进制打印一个带符号的 64 位整数

转载 作者:行者123 更新时间:2023-12-04 01:08:28 24 4
gpt4 key购买 nike

我正在创建一个程序,以十六进制和八进制格式打印一个 signed 64 位变量。我在网上搜索了格式说明符,但只找到了 unsigned 64 位整数的结果。

最佳答案

说明符 %o%x 实际上只是为无符号整数值定义的。在有符号输入的情况下,如果你想显示一个有符号的值,如 -234 以及十六进制的“符号”,例如-ea,您必须单独处理带符号的值。否则,如果您希望负值显示为正确的无符号转换(即二进制补码表示),只需将其转换为 unsigned:

int main() {

int input = -234;
if (input < 0) {
printf("-%x\n", (unsigned)(-input));
} else {
printf("%x\n", (unsigned)input);
}

printf("%x\n", (unsigned)input);
}

输出:

-ea
ffffff16

关于c - 以十六进制和八进制打印一个带符号的 64 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65555783/

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