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

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 低

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值