一、int变量发生了溢出怎么办? 二、读写无符号整数时,u、o、x分别是什么形式? 三、读写短、长、长长整数时应该怎么写? |
假设有一个程序因为其中一个int变量发生了溢出,我们的第一反应是把变量类型从int变为long int。但是这样做不够的,我们还必须检查数据类型的改变对程序其他部分的影响,尤其是需要检查变量是否用在printf函数或scanf函数的调用中。如果用了,需要改变调用中的格式串,因为%d只适用于int类型。 读写无符号整数、短整数和长整数需要一些新的转换说明符。 读写无符号整数时,使用字母u、o或x代替转换说明中的d。u说明符,该数将以十进制形式读写,o表示八进制形式,而x表示十六进制形式。 读写短整数时, 在d、o、u或x前面加上字母h: short s; scanf("%hd", &s); printf("%hd", s); 读写长整数时, 在d、o、u或x前面加上字母l: long l; scanf("%ld", &l); pritnf("%ld", l);
读写长长整数时(仅限C99),在d、o、u或x前面加上字母ll long long ll; sacnf("%lld", &ll); printf("%lld", ll); |
%d只适用于int类型 而 unsidgned int无符号整数则是 %u 读写无符号整数时,u代替d 成为十进制形式 o表示八进制 x表示十六进制。 短整数 在 d、o、u、x 前加h , 长整数加l , 长长整数加ll 。 |
原文:https://www.cnblogs.com/cjbsai/p/14633894.html