c++ int,unsigned int混合表达式类型转换


测试代码:

#include<cstdio>
#include<iostream>
using namespace std;
int main() {
    unsigned int a = 3;
    int b=2,c=1;
    if(b<c-a) cout<<"int transform to unsigned int"<<endl;
    cout<<b<<" "<<c-a<<endl;;
    cout<<a*-1<<endl;
    long long d = 5;
    cout<<a-d<<" "<<sizeof(a-d)<<endl;
    return 0;
}

运行结果:

int transform to unsigned int
2 4294967294
4294967293
-2 8

 

int和unsigned int的混合表达式,计算时会将int转换为unsigned int

 普通情况下会将范围小的隐式转换为范围大的,但对于int和unsigned int,就说不准哪个范围大了,经测试是会将int转换为unsigned int(被坑过。。。)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM