其实我(可能)是一个“简单”的问题。所以我不知道如何将有符号整数转换为无符号整数。C:转换签名为无符号
我的代码:
signed int entry = 0;
printf("Decimal Number : ");
scanf("%d", &entry);
unsigned int uEntry= (unsigned int) entry;
printf("Unsigned : %d\n", uEntry);
如果我无符号值发送到控制台(见我最后的代码行),我总是得到回一个有符号整数。
你能帮我吗?
非常感谢!
亲切的问候,亲
嗨肯尼,谢谢你的回答。如果我设置了%u说明符,我将得到-13一个无符号值4294967283.问题是什么。谢谢。 – bitsmuggler 2010-09-29 20:08:45
没有问题。这是变量位的无符号表示。 – 2010-09-29 20:33:19
@pro:当您的格式说明符与要打印的值的类型不匹配时,行为未定义,结果无意义。即当用'%u'打印'-13'时,结果是没有意义的。以及您最初尝试使用'%d'打印无符号值。如果您希望输出有意义,请始终使用正确的格式说明符:'unsigned int'为'%u','signed int'为'%d'。 – AnT 2010-09-30 00:34:29