首页 > 编程语言 >C++新增数据类型long long ,unsigned long long

C++新增数据类型long long ,unsigned long long

时间:2022-12-09 16:05:38浏览次数:44  
标签:int max 数据类型 unsigned C++ long 整型


相比于C++98标准,C++11整型的最大改变就是多了long long。但事实上,long long整型本来就离C++标准很近,早在1995年,long long就被提议写入C++98标准,却被C++标准委员会拒绝了。而后来,long long类型却进入了C99标准,而且也事实上也被很多编译器支持。于是辗转地,C++标准委员会又掉头决定将long long纳入C++11标准。


long long整型有两种: long longunsigned long long。在C++11中,标准要求long long整型可以在不同平台上有不同的长度,但至少有 64位。我们在写常数字面量时,可以使用LL后缀(或是ll)标识一个long long类型的字面量,而ULL(或ull、Ull、uLL)表示一个unsigned long long类型的字面量。比如:
long long int lli = -9000000000000000000LL;
unsigned long long int ulli = -9000000000000000000ULL;


就定义了一个有符号的long long变量lli和无符号的unsigned long long变量ulli。事实上,在C++11中,还有很多与long long等价的类型。比如对于有符号的,下面的类型是等价的:long long、signed long long、long long int、signed long long int;而unsigned long long和unsigned long long int也是等价的。


同其他的整型一样,要了解平台上long long大小的方法就是查看<climits>(或<limits.h>中的宏)。与long long整型相关的一共有3个:LLONG_MIN、LLONG_MAX和ULLONG_MIN,它们分别代表了平台上最小的long long值、最大的long long值,以及最大的unsigned long long值。可以看看下面这个例子,如代码清单2-5所示。


代码清单2-5

#include <climits>
#include <cstdio>
using namespace std;


int main()<span style="font-family: Arial, Helvetica, sans-serif;">{</span>
long long ll_min = LLONG_MIN;
long long ll_max = LLONG_MAX;
unsigned long long ull_max = ULLONG_MAX;


printf("min of long long: %lld\n", ll_min); // min of long long: -9223372036854775808
printf("max of long long: %lld\n", ll_max); // max of long long: 9223372036854775807
printf("max of unsigned long long: %llu\n", ull_max); // max of unsigned long long: 18446744073709551615
}



// 编译选项:g++ -std=c++11 2-2-1.cpp




在代码清单2-5中,将以上3个宏打印了出来,对于printf函数来说,输出有符号的long long类型变量可以用符号%lld,而无符号的unsigned long long则可以采用%llu。18446744073709551615用16进制表示是0xFFFFFFFFFFFFFFFF(16个F),可知在我们的实验机上,long long是一个64位的类型。


标签:int,max,数据类型,unsigned,C++,long,整型
From: https://blog.51cto.com/u_15907770/5926127

相关文章

  • 第二章:10道C/C++经典面试题
    面试题11:设置地址为0x67a9的整型变量的值为0xaa66int*ptr;ptr=(int*)0x67a9;*ptr=0xaa66;说明:这道题就是强制类型转换的典型例子,无论在什么平台地址长度和整型数据......
  • C++猜数字游戏的程序,用srand()函数产生随机数
    /*编写一个猜数字游戏的程序:程序随机选择一个1到1000的数,然后输出:  Ihaveanumberbetween1and1000.    Canyouguessmynumber?  Pleasetype......
  • C语言中的结构体与C++中的类异同
    从C语言到C++,是编程思想的进步,技术发展的结果吧,所以C++基本上是兼容C的语法的,C++的很多东西也是从C中继承过来的,然后再发扬,C语言的结构体便是C++中类的雏形。       ......
  • MFC,VC++中,CView类意外消失
    (1)在我们写MFC程序的时候,可能CView类可能会意外的消失,现在我用的是Win7操作系统,VC6.0和WindowsXP是完全兼容的,可能是系统兼容的问题,所以在Win7系统下编写程序总会出现一些莫......
  • MFC,VC++计算器小程序
    大学期末没课,某个中午闲来无聊,正好在自学MFC,于是想用MFC、C++写点东西,由于能力有限,当然的写个简单点的啦,于是花了两个小时写了这个计算器的小程序,希望对初学VC++和MFC的朋友有所帮助。程......
  • 冒泡排序算法详解C++程序
    (1)冒泡排序算法:(BubbleSort)首先肯定是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到......
  • 《安富莱嵌入式周报》第294期:将C/C++代码转换为各种高级语言,超炫渲染着色器,VS2022新闻
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104更新视频教程:USB应用实战视频教程第5期:手把手玩转USBHID免驱方式......
  • C++那些事-static
    static那些事关于作者微信公众号:当与不同类型一起使用时,Static关键字具有不同的含义。我们可以使用static关键字:静态变量:函数中的变量,类中的变量静态类的成员:类对......
  • Redis(一)五种基本数据类型
    1NoSQl数据库1.1技术的发展技术的分类:①解决功能性问题:javase②解决扩展性问题:框架③解决性能问题:redis1.2NoSQL数据库概述NoSQL(NotOnlySQL),不仅仅是SQL,泛指......
  • C++那些事-const
    关于作者微信公众号:1.const含义常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。2.const作用可以定义常量constinta=100;......