pascal,c,c++使用大于2^32整型的注意要点
如果在你的电脑出现以下这种现象,则说明这篇文章适合你,否则不必理会。
适用于取余
比如求n!除以1000000007(被除数较大)的余数。
pascal:
pascal输出不需要说明格式,而若式子运算过程中的值都在2^64范围内,在整型范围内,则结果输出无错误,不需要高精度。
begin
writeln(*);
writeln(* mod );
end.
c:
1.若式子运算过程中的值曾经在2^64范围内,大于2^32的范围,即使结果在2^32内,即使用long long,__int_64的数据保存,都要加上(long long) 或 (__int_64)。
Wrong:long long x; x=1000000*1000000+2;
Yes:long long x; x=(long long)1000000*1000000+2;
Wrong:printf("%ld\n",1000000*1000000/1000000);
Yes:printf("%ld\n",(long long)1000000*1000000/1000000);
2.若运算结果在2^64范围内,大于2^32的范围,则需要用到long long: %lld,__int_64: %i64d。
Wrong:printf("%lld\n",(long long)1000000*1000000+2);
Yes:printf("%ld\n",(long long)1000000*1000000+2);
#include <stdio.h>
#include <stdlib.h> int main()
{
long long x;
x=(long long)*+;
printf("%lld\n",x);
printf("%lld\n",(long long)*+); printf("--------\n"); x=*+;
printf("%lld\n",x);
printf("%lld\n",*+);
printf("%ld\n",(long long)*+); printf("--------\n"); printf("%ld\n",*/);
printf("%ld\n",(long)*/);
printf("%ld\n",(long long)*/);
printf("%lld\n",*/);
printf("%lld\n",(long long)*/); return ;
}
c++:
1.c++和pascal一样,输出不需要说明格式;而c输出需要说明格式,所以c++不用像c一样判断什么时候用%ld,或者%lld,%i64d。
2.若式子运算过程中的值曾经在2^64范围内,大于2^32的范围,即使结果在2^32内,即使用long long,__int_64的数据保存,都要加上(long long) 或 (__int_64)。这一点和c一样。
#include <iostream>
using namespace std; int main()
{
long long x;
x=(long long)*+;
cout<<x<<endl;
cout<<(long long)*+<<endl; cout<<"--------"<<endl; x=*+;
cout<<x<<endl;
cout<<*+<<endl; cout<<"--------"<<endl;
cout<<*/<<endl;
cout<<(long)*/<<endl;
cout<<(long long)*/<<endl; return ;
}
最新文章
- Android系统文件夹组织结构
- 阻塞非阻塞,同步异步四种I/O方式
- SQL Server调优系列进阶篇(深入剖析统计信息)
- 启动Hive报错
- win live
- bootstrap-datepicker 日期拾取器
- PHP数组函数相关
- webform中listbox运用,2个相互传值练习1:
- webstorm中关于vue的一些问题
- 接口测试入门(2)--get和post初级请求/使用httpclient做一个获取信息list的请求(需要登录才可以)
- Spring学习日志之Bean的装配
- 1197多行事务要求更大的max_binlog_cache_size处理与优化
- android 职业 转行
- [Laravel] 14 - REST API: Laravel from scratch
- [javaSE] 集合框架(TreeSet)
- I - Matches Game(异或运算符的使用)
- 使用 Nginx 提升网站访问速度
- [转] Foobar2000 DSP音效外挂元件-Part4
- Oracle与EntityFramework(EF)的一些事情
- [LeetCode 题解]:Gray Code