首页 > 代码库 > 整形_长整型的使用范围(两个数的乘积)
整形_长整型的使用范围(两个数的乘积)
整形_长整型的使用范围(两个数的乘积)
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.当输出的值在输出格式范围之内,则输出正确,否则不正确。
整形_长整型的使用范围(两个数的乘积)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。