0
点赞
收藏
分享

微信扫一扫

unsigned int 与 int运算,结果是什么类型

三千筱夜 2022-02-28 阅读 215

unsigned int 与 int相加:

unsigned int val = 100;

if (val - 150 > 0) 
    printf("result is : unsigned int\n");
else 
    printf("result is : int\n");
//结果:result is : unsigned int

结果:

value is 4294967246.

所以 unsigned int与int作运算时,int会自动转化为unsigned int类型。

如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算

由此引申到double和long long,

double dd = 100.0;
long long ll = 50;
qDebug() << "type name is " << typeid (dd - ll).name();
//结果:type name is double

转换规则如下图所示。

1.短字节的向长字节转:
        double高 ← float ,long低
        int 高 ← char, short 低

2.相同字节长度的,

        有符号向无符号转:

                unsigned int ← int低

                unsigned int ← long低

        整型向浮点型转:

                double高 ← long long低

                float高 ← int 低

举报

相关推荐

0 条评论