首页 > 代码库 > 整形_长整型的使用范围(两个数的乘积)

整形_长整型的使用范围(两个数的乘积)

整形_长整型的使用范围(两个数的乘积)

 

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.当输出的值在输出格式范围之内,则输出正确,否则不正确。

整形_长整型的使用范围(两个数的乘积)