栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

long long

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

long long

        long long是C++11中新引入的内置类型

        其实并没有什么特别的,根据C++11的文档long long至少占64位,在大部分的编译器里long long占64位。

        在visual studio中各种类型所占字节数如下代码所示,其中显示long long占8字节。同样unsigned long long也占8字节64位。

int main()
{
	cout << sizeof(bool) << endl;		// 1
	cout << sizeof(char) << endl;		// 1
	cout << sizeof(short) << endl;		// 2
	cout << sizeof(int) << endl;		// 4
	cout << sizeof(long) << endl;		// 4
	cout << sizeof(long long) << endl;	// 8
	return 0;
}

        在编程中经常会遇见一个不小心产生的bug

	long long a = 2 * INT_MAX;

        变量a为64位的,可以存下2倍的int类型的最大值,预期结果应该是4294967294,但是实际输出的-2,表示在运算过程中产生了溢出。

        2和INT_MAX都为int类型,进行乘法的时候将结果存在一个int类型的临时变量中,然后将该临时变量赋值给long long类型的a,即将-2赋值给了a。

        在运算时应将其中一个变量定义为long long类型,这样才不会产生溢出。

	long long b = 2LL * INT_MAX;

        这样可以得到正确结果4294967294

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312200.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号