C++エッセイ学習の6データ型変換


1、int 32_について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と乗算され、結果は整数でint 32を超えた.tで表すことができる部分は切り捨てられ、すなわち積はint 32_とtの最大値取余
int32_tは512 Lに乗算され、結果はロング整数型であるため、結果は正確に表すことができる
印刷時,%ldは印刷長整数型であり,印刷整数型であればコンパイルエラー