之间的真正区别" INT"和" unsigned int类型" [英] The real difference between "int" and "unsigned int"

查看:188
本文介绍了之间的真正区别" INT"和" unsigned int类型"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

INT

32位int数据类型可以在范围内举行的整数值
 2,147,483,648到2,147,483,647。您也可以参考此数据类型
 作为签署int或签名。

The 32-bit int data type can hold integer values in the range of −2,147,483,648 to 2,147,483,647. You may also refer to this data type as signed int or signed.

unsigned int类型

32位无符号整型数据
 类型可以在0范围内持有整数值4,294,967,295。您
 也可参考此数据类型简单地作为无符号。

The 32-bit unsigned int data type can hold integer values in the range of 0 to 4,294,967,295. You may also refer to this data type simply as unsigned.

好吧,但是,在实践中:

Ok, but, in practice:

int x = 0xFFFFFFFF;
unsigned int y = 0xFFFFFFFF;
printf("%d, %d, %u, %u", x, y, x, y);
// -1, -1, 4294967295, 4294967295

没有区别,O.o.我有点糊涂了。

no difference, O.o. I'm a bit confused.

推荐答案

呵呵。在这里你有一个隐式转换,因为你告诉的printf 期望是什么类型的。

Hehe. You have an implicit cast here, because you're telling printf what type to expect.

试试这个关于大小,而不是:

Try this on for size instead:

unsigned int x = 0xFFFFFFFF;
int y = 0xFFFFFFFF;

if (x < 0)
    printf("one\n");
else
    printf("two\n");
if (y < 0)
    printf("three\n");
else
    printf("four\n");

这篇关于之间的真正区别&QUOT; INT&QUOT;和&QUOT; unsigned int类型&QUOT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆