繁体   English   中英

C:将有符号转换为无符号

[英]C : Convert signed to unsigned

实际上,我(大概)有一个“简单”的问题。 所以我不知道如何将有符号整数转换为无符号整数。

我的代码:

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 如果您使用%dprintf函数将期望一个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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM