C++学习随笔之六 数据类型转换

1、关于int32_t类型与整型和长整型的乘法

uint32_t a = 19609146;
int64_t c = a * 512L;
printf("aa = %d,bb = %ld,cc = %ld",a * 512,c,a * 512L);
结果为
aa = 1449948160,bb = 10039882752,cc = 10039882752

分析:

int32_t 与512乘,结果为整型,超过int32_t能表示的部分会被截断,即乘积会与int32_t的最大值取余

int32_t与512L相乘,结果为长整型,所以结果能正确表示

打印时,%ld为打印长整型,如果打印整型,编译报错

你可能感兴趣的:(C++,数据类型转换)