题
其实我有(可能是)一个“简单”的问题。所以我不知道如何转换为一个无符号整数有符号整数。
我的代码:
signed int entry = 0;
printf("Decimal Number : ");
scanf("%d", &entry);
unsigned int uEntry= (unsigned int) entry;
printf("Unsigned : %d\n", uEntry);
如果我无符号值发送到控制台(见我最后的代码行),我总是得到回一个有符号整数。
你能帮助我吗?
非常感谢!
此致亲
解决方案
printf("Unsigned : %u\n", uEntry);
// ^^
您必须使用%u
符告诉printf
运行时的uEntry
是unsigned int
。如果您使用的%d
功能printf
会期待一个int
,从而重新诠释你的输入回一个签名值。
其他提示
附加这些两行代码的结尾,你会明白是怎么回事。
printf("entry: signed = %d, unsigned = %u, hex = 0x%x\n", entry, entry entry);
printf("uEntry: signed = %d, unsigned = %u, hex = 0x%x\n", uEntry,uEntry,uEntry);
不隶属于 StackOverflow