c++中,long long是啥类型?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中,long long是啥类型?相关的知识,希望对你有一定的参考价值。
long long不是所有编译器都使用的,说白了它就是一种能够表示范围更大的整数的类型一般来说,整数常量是被当作 int 类型来存储的。如果我们使用的整数常量超出了 int 的表示范围,C 语言规定编译器自动使用 unsigned int 来处理这个常量。如果 unsigned 也不足以表示这个常量的话,编译器就会用 long。如果还表示不了的话,那就依次用 unsigned long,long long,unsigned long long。如果 unsigned long long 也表示不了,那么编译器就没辙了。注意:long long 和 unsigned long long 是 C99 特有的。 参考技术A long long本质上还是整型,只不过是一种超长的整型。
int型:32位整型,取值范围为-2^31 ~ (2^31 - 1) .
long:在32位系统是32位整型,取值范围为-2^31 ~ (2^31 - 1);在64位系统是64位整型,取值范围为-2^63 ~ (2^63 - 1)
long long:是64位的整型,取值范围为-2^63 ~ (2^63 - 1)。 参考技术B 转自百度百科:
由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型
string抽象意义是字符串, size()的抽象意义是字符串的尺寸, string::size_type抽象意义是尺寸单位类型
string::size_type它在不同的机器上,长度是可以不同的,并非固定的长度。但只要你使用了这个类型,就使得你的程序适合这个机器。与实际机器匹配。
eg
string::size_type从本质上来说,是一个整型数。关键是由于机器的环境,它的长度有可能不同。 例如:我们在使用 string::find的函数的时候,它返回的类型就是 string::size_type类型。而当find找不到所要找的字符的时候,它返回的是 npos的值,这个值是与size_type相关的。假如,你是用 string s; int rc = s.find(.....); 然后判断,if ( rc == string::npos ) 这样在不同的机器平台上表现就不一样了。如果,你的平台的string::size_type的长度正好和int相匹配,那么这个判断会侥幸正确。但换成另外的平台,有可能 string::size_type的类型是64位长度的,那么判断就完全不正确了。 所以,正确的应该是: string::size_type rc = s.find(.....); 这个时候使用 if ( rc == string::npos )就会正确了。
st.size()表示st中的字符数量,字符数量的统计是由 1 开始累计计算的,所以字符数量正好比字符串的下标索引数(由 0 开始累计计算)大 1 ,这里的index != st.size();的效果等同于index < st.size();本回答被提问者采纳 参考技术C 长长整型,其位长度大于等于long型。
在Win32平台和Win64平台中,其长度都是8Byte,相当于_int64。
long long 在c语言中是啥类型
“longlongint”在C语言中是64位长整型数据类型。longlong是属于int型,一般来讲,是longint型大小的两倍,int型的4倍。
“longlongint”在C语言中可以简写为“longlong”,作为“long”和“int”数据类型的强化版数据类型,它能支持的整数范围是-2^63到2^63-1。而先前的“long”是32位长整型数据类型,整数范围仅能支持到-2^31至2^31-1。
“longlongint”和“unsignedlonglongint”都是在C99标准中才被引进的。
扩展资料:
需要注意:
longlong是一个后来加上去的数值类型,也就是说非常老的编译器是不支持这个数据类型的(如VC++6.0)。
C99标准引入的主要新功能:
1、对编译器的限制增加了,比如每行源代码至少需要4095字节,变量和函数名需要63字节(extern最多需要31字节)。
2、添加了新的关键字restrict,inline,_Complex,_Bool。
3、支持longlong、longdouble_Complex、float_Complex等类型。
4、一个不确定长度的数组。数组的长度是一个变量。当你声明一个类型时,你写一个int[*]。但就效率和执行而言,这并不是一种新类型。所以你不能在全局或结构联合中使用它,如果你使用类似的东西,goto语句是受约束的。
5、与C89标准相比,C99引入了一种新的结构/数组初始值设定项,名为指定初始值设定项。
6、支持十六进制浮点数描述。
7、添加了一个内置的本地静态字符数组变量,它可以用于获取当前函数的函数名。
8、函数的默认返回类型是int型。
参考资料来源:百度百科-C99
参考技术Along long是属于int型, 一般来讲, 是long int型大小的两倍, int型的4倍.
但是需要注意的是long long是一个后来加上去的数值类型, 也就是说非常老的编译器是不支持这个数据类型的(如VC++6.0).
如果在此类编译器下使用长长整型, 以VC++6.0为例, 就要用它的自定义数据类型:__int64. 若要输入输出(包括C++), 则只能用printf或scanf函数. 如:
printf("%l64d", i64); 参考技术B long long 在c语言中是什么类型?“longlongint”在C语言中是64位长整型数据类型。longlong是属于int型,一般来讲,是longint型大小的两倍,int型的4倍。
“longlongint”在C语言中可以简写为“longlong”,作为“long”和“int”数据类型的强化版数据类型,它能支持的整数范围是-2^63到2^63-1。而先前的“long”是32位长整型数据类型,整数范围仅能支持到-2^31至2^31-1。
“longlongint”和“unsignedlonglongint”都是在C99标准中才被引进的。
扩展资料:
需要注意:
longlong是一个后来加上去的数值类型,也就是说非常老的编译器是不支持这个数据类型的(如VC++6.0)。
C99标准引入的主要新功能:
1、对编译器的限制增加了,比如每行源代码至少需要4095字节,变量和函数名需要63字节(extern最多需要31字节)。
2、添加了新的关键字restrict,inline,_Complex,_Bool。
3、支持longlong、longdouble_Complex、float_Complex等类型。
4、一个不确定长度的数组。数组的长度是一个变量。当你声明一个类型时,你写一个int[*]。但就效率和执行而言,这并不是一种新类型。所以你不能在全局或结构联合中使用它,如果你使用类似的东西,goto语句是受约束的。
5、与C89标准相比,C99引入了一种新的结构/数组初始值设定项,名为指定初始值设定项。
6、支持十六进制浮点数描述。
7、添加了一个内置的本地静态字符数组变量,它可以用于获取当前函数的函数名。
8、函数的默认返回类型是int型。 参考技术C long long是C99标准新加的,64位长整形,某些老古董编译器不支持该类型,所以如果要使用的话要注意编译器对C标准的支持,如果不支持可以使用编译器自定义的长整形(如VC的__int64)。 参考技术D long long 类型占64个字节。
符号属性 长度属性 基本型 所占位数 取值范围 输入符举例
[signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d
unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x
以上是关于c++中,long long是啥类型?的主要内容,如果未能解决你的问题,请参考以下文章
C# long 类型的等效 SQL Server 类型是啥?