整形_长整型的使用范围(两个数的乘积)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整形_长整型的使用范围(两个数的乘积)相关的知识,希望对你有一定的参考价值。
整形_长整型的使用范围(两个数的乘积)
1.
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 printf("%ld\n",1000000*1000000%5); 7 printf("%lld\n",1000000*1000000%5); 8 9 long a=1000000; 10 printf("%ld\n",a*a%5); 11 printf("%lld\n",a*a%5); 12 13 long long b=1000000; 14 printf("%ld\n",b*b%5); 15 printf("%lld\n",b*b%5); 16 17 printf("%ld\n",(long long)1000000*(long long)1000000%5); 18 printf("%lld\n",(long long)1000000*(long long)1000000%5); 19 20 return 0; 21 }
I.%ld,%lld代表以什么形式输出结果,输出结果的方式不影响运算过程。
II.当乘积大于整形范围,在整形范围之内时,乘数必须为长整形类型,如(long long)1000000*(long long)1000000%5 / long long b=1000000; printf("%ld\n",b*b%5); ,否则会出错。
2.
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 /** 7 long -2147483648~2147483647 2.1*10^9(2^31) 8 unsigned long 0~4294967295 4.2*10^9(2^32) 9 (int 范围与 long 相同) 10 long long:-9223372036854775807~9223372036854775808 9.2*10^18(2^63) 11 unsigned long long:0~18446744073709551615 1.8*10^19(2^64) 12 (__int64 范围与 long long 相同) 13 **/ 14 15 printf("%ld\n",2000000000);//<2147483647,Y 16 printf("%ld\n",1000000000*3%5);//>2147483647,N 17 18 long a=1e9,b=3; 19 printf("%ld\n",a*b%5);//>2147483647,N 20 21 unsigned long c=1e9,d=3; 22 printf("%lu\n",c*d%5);//<4294967295,Y 23 24 long long e=1e18,f=10; 25 printf("%ld\n",e*f%5);//>9223372036854775808,N 26 27 unsigned long long h=1e18,i=10; 28 printf("%llu\n",h*i%5);//<18446744073709551615,Y 29 return 0; 30 }
I.整数变量无标识时默认为整形变量。
II.unsigned long 输出格式:%lu。
III.当输出的值在输出格式范围之内,则输出正确,否则不正确。
以上是关于整形_长整型的使用范围(两个数的乘积)的主要内容,如果未能解决你的问题,请参考以下文章