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 ;
}

pascal,c,c++使用大于2^32整型的注意要点的更多相关文章
- python基础知识2——基本的数据类型——整型,长整型,浮点型,字符串
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 对于Python ...
- [C]基本数据类型:整型(int)用法详解
1.整型int C语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int是整型之一,一般被称为整型.以后,在不产生歧义的情况下,我们把整数类型和int都称为整 ...
- [改善Java代码]优先使用整型池
建议28: 优先使用整型池 看如下代码: public class Client { public static void main(String[] args) { Scanner input = ...
- Java之戳中痛点 - (7)善用Java整型缓存池
先看一段代码: package com.test; import java.util.Scanner; public class IntegerCache { public static void m ...
- 第一节 Python基础之数据类型(整型,布尔值,字符串)
数据类型是每一种语言的基础,就比如说一支笔,它的墨有可能是红色,有可能是黑色,也有可能是黄色等等,这不同的颜色就会被人用在不同的场景.Python中的数据类型也是一样,比如说我们要描述一个人的年龄:小 ...
- js长整型的失真问题解决
遇到的问题: 后端返回的订单号是整型的,超过了Math.pow(2,53) = 9007199254740992,导致获取的数据失真. 类似问题:https://www.zhihu.com/quest ...
- mysql之整型数据int
mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下:1.bigint 从 - ...
- Go语言类型(布尔、整型、数组、切片、map等)
1.基本类型 布尔类型:bool 注意:布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换. 整型:int8.byte(uint8).int16.int.uint.uintptr int.ui ...
- Learning-Python【5】:Python数据类型(1)—— 整型、浮点型、字符串
一.整型 1.用途:记录年龄.等级.各种号码等 2.定义方式 age = 22 只能将纯数字的字符串转换成整型 3.常用操作+内置方法 赋值运算.比较运算.算数运算 该类型总结: 存一个值 不可变(可 ...
随机推荐
- json模块 & pickle模块
之前学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了,所 ...
- centos7.4下Jira6环境部署及破解操作记录(完整版)
废话不多说,以下记录了Centos7针对Jira6的安装,汉化,破解的操作过程,作为运维笔记留存. 0) 基础环境 192.168.10.212 Centos7.4 mysql 5.6 jdk 1.8 ...
- python-编码-15
ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字节 中:00000000 00000 ...
- tmux使用总结
ctrl+b +%:增加垂直分屏 ctlr+b +左右箭头: 在垂直分屏中移动 ctrl+b+c:新建窗口(不分屏) ctrl+b+数字键: 切换窗口 ctrl+b+d: 断开窗口 tmux a : ...
- 安装Visual Studio2013
安装Visual Studio2013现在官网下载在选择安装的可选功能这里,大家可以根据自己需要勾选,也可以默认全选.这里有个小功能,把鼠标放在文字上,会弹出各个功能的详细描述.选择四个常用的功能,另 ...
- 撰写POPUSH需求文档
不当家不知柴米贵,撰写了正规的软件需求文档才知道软件工程的复杂性 感谢@洪宇@王需@江林楠下午的加班加点,五个人正闷在406B奋斗中,加油!
- linux及安全第三周总结——跟踪分析LINUX内核的启动过程
linux内核目录结构 arch目录包括了所有和体系结构相关的核心代码.它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录.PC机一 ...
- 软件工程项目之摄影App(第二次冲刺)
第二次冲刺阶段做出了登录,还有首页.基本界面也成型了. 登录验证码是用了mob的验证码skd.
- 关于<T> T[] toArray(T[] a) 方法
http://mopishv0.blog.163.com/blog/static/5445593220101016102129741/ private List<String> uploa ...
- Java用JSoup组件提取asp.net webform开发网页的viewstate相关相关参数
/** * 从页面中提取特定input的的Value * @param formparams * @param document * @param elementId */ private void ...