Long Long、__int64使用总结2011-03-16 12:06前言:
在16位环境下,int/unsigned int 占16位,long/unsigned long占32位
在32位环境下,int占32位,unsigned int占16位,long/unsigned long占32位
何时需要使用:
long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647,而unsigned范围是[0,2^32),即0~4294967295,所以常规的32位整数只能够处理40亿左右,当遇到比40亿大的多的数就要用到64位。
64位使用范围:
不同的编译器对64位整数的扩展有所不同,VC使用__int64/unsigned __int64,范围是[-2^63, 2^63)和[0,2^64),即-9223372036854775808~9223372036854775807与 0~18446744073709551615(约1800亿亿)。
注意点:
1、编译器不同导致使用64位的申明方式不同;
2、long long / unsigned long long 一般是Linux下申明方式、如:G++
3、__int64 /unsigned __int64一般是Windows下使用64位的申明方式,如:VS
4、在赋值时需要注意加上ll进行显式赋值;
5、当进行64位与 32位的混合运算时,32位整数会被隐式转换成64位整数。
6、输出printf("");,long long使用%lld输出,__int64使用%I64d,无符号使用u替代d即可。
7、测试下来编译器一般都支持2种操作,不必太过纠结,怎么使用看个人喜欢。
//=================================华丽的分隔线========================================
#include <stdio.h>
#include <stdlib.h>
intmain(){
unsigned long longa= 412432424000ll;
unsigned __int64b= 9223372036854775808ll;
printf("%I64u\n",a); //使用%lld时无法正常输出,why? 解答在附
printf("%I64u",b);
system("pause");
return 0;
}
附网友测试结果:
刚实验了下,在VC6、DEV、CodeBlocks中C语言都可以使用__int64,格式化输出标识为%I64d。不过在VC6中数字后加2个L是会报错,可以只加1个或不加。查了下资料,__int64是windows专用的,被vc、gcc等编译器支持,但在在UNIX、Linux中需用long long配合%lld。后者是标准C的规定!
我试了下long long配合%I64d,可以正确输出,而不管是long long还是__int64配合%lld都不能正确输出。所以我得出的结论是在windows下需要用longlong或,__int64配合%64d。而在UNIX、Linux中必须使用标准C规定的long long配合%lld。
记。
1 如何将字串 String 转换成整数 int?
A. 有两个方法:
1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
注: 字串转成 Double, Float, Long 的方法大同小异.
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
注: Double, Float, Long 转成字串的方法大同小异.
纯java方法:
String one = "20050105080202 ";
String another = "20050105080212 ";
System.out.println(one.compareTo(another));
如果one大于another,则返回1;
如果one小于another,则返回-1;
如果相等,则返回0。
sqlserver直接就可以比较
java 中BigIntergeter也可以
分享到:
相关推荐
本文通过对材料介电常数的测量方法进行综合分析,总结了频域技术、时域技术、噪声相关技术和谐振腔技术等几种常用测量方法,并探讨了它们的应用范围和最新进展。 首先,频域传输法是基于电磁波在材料界面产生反射和...
在PCB板材介电常数的测量方法上,通常使用的是基于材料测试系统的测试方法,如使用网络分析仪、阻抗分析仪或者专门的介电测试装置。测量原理一般基于传输/反射法、谐振法、腔体法、微波频率扫描法等,这些方法根据...
电表的脉冲常数是指电表每输出一个脉冲所代表的电能量值,它是一个电表测量精度的重要参数。合理设置脉冲常数能够使得电表在测试与管理过程中...了解和掌握脉冲常数的计算方法,对于电表的设计和使用人员来说至关重要。
"玻尔兹曼常数实验数据处理方法" 玻尔兹曼常数是一种重要的物理常数,反映物质世界的不连续特性。精确测量玻尔兹曼常数具有十分重要的意义。本文通过PN结的电流电压特性关系,采用线性回归、乘幂回归、指数回归三种...
在该论文中,作者还对其他方法进行了对比,证明了该方法的优越性,并对测量结果进行了讨论和分析,提供了一个新的思路和方法来改进普朗克常数的测量。 本文的主要内容包括: * 光电效应测普朗克常数实验数据处理的...
国标GBT 12634-1990 压电晶体电弹常数测试方法
总结来说,这个压缩包文件提供的是一种利用HFSS和S参数反演计算介电常数的方法,这涉及到微波工程中的基础概念、HFSS软件的使用技巧以及数学建模和数据分析的能力。通过 MATLAB 脚本处理HFSS输出的数据,我们可以更...
介绍了煤层瓦斯吸附常数测定方法,并且针对黄白茨煤矿各煤层瓦斯的实际,采用高压容量测定法进行瓦斯吸附常数测定,为合理地选择瓦斯抽放方法提供科学依据;同时根据瓦斯吸附常数、瓦斯含量合理地选择12#煤层1203综采...
本文内容涵盖了衍射光栅测量波长与光栅常数的原理及数据处理方法,着重提出了比较法和最小二乘法这两种新的数据处理技术。 首先,衍射光栅是物理实验中常见的一种光学元件,它能将入射光通过衍射效应分成不同波长的...
提出了无量纲参数(比较不确定性)作为用于比较玻耳兹曼常数和模拟数据的实验测量的通用度量。 给出了使用建议的原始方法来计算示例的示例,该方法使用声学气体温度计,介电常数气体温度计,约翰逊噪声温度计,...
本文将深入探讨石墨烯的介电常数,以及如何利用计算机模拟软件CST(Computer Simulation Technology)进行计算和验证。 石墨烯的介电常数是描述其电磁性质的关键参数,它决定了石墨烯对电磁波的响应。在太赫兹波段...
这涉及到对态密度、费米函数、动量散射率等进行积分。 4. **数值计算与处理**:在MATLAB环境中实现这些复杂的数学运算,可能需要使用矩阵操作、数值积分和复数运算等工具。 5. **可视化结果**:程序可能会输出介电...
牛顿发现的重力常数仍以相对不确定度进行测量,该相对不确定度比其他基本常数的相对... 进行了比较,并讨论了使用布里渊(Brillouin)提出的一种称为比较不确定性的新度量来实现更高准确性的可能性的各种方法的优缺点。
实验数据的记录和处理部分,要求对所测得的数据进行整理和分析,通过线性拟合等数学方法求解出目标常数。实验中需要记录温度、溶液的电导率以及空白溶液的电导率等数据,并利用这些数据进行处理。 实验报告还包含了...
"拟合算法-基于卫星高度计海面高度异常资料获取潮汐调和常数方法及应用" 本文主要讨论了基于卫星高度计海面高度异常资料获取潮汐调和常数的方法及应用。通过对 TOPEX/POSEION 卫星高度计在若干位置点观测得到的高度...
将实验结果与公认值进行比较,评估测量的准确性。 总结来说,这个实验不仅涉及PN结的物理特性,还涵盖了精密测量技术的应用,旨在提升学生对半导体器件的理解和实验技能。通过实际操作,学生能够掌握PN结伏安特性...
德拜相法是一种利用X射线对多晶试样进行衍射分析的方法,其原理基于布喇格定律。在德拜相法的实验中,准确测量和处理数据至关重要,因为实验数据直接关系到晶格常数的计算结果。本篇文档介绍了三种数据处理方法,...
"拟合算法-基于卫星高度计海面高度异常资料获取潮汐调和常数方法及应用" 这篇论文主要研究了基于卫星高度计海面高度异常资料获取潮汐调和常数的方法及应用。论文首先介绍了数据插值理论的基础,然后通过“线性映射...
【文章标题】:“分光光度法测蔗糖酶米氏常数”数据处理方法 【文章摘要】:本文介绍了如何使用Visual Basic 6.0编程处理“分光光度法测蔗糖酶米氏常数”的数据,通过最小二乘法直线拟合,提供精确的实验结果。 ...