首页 > 编程语言 >C/C++ 各类型int、long、double、char、long long取值范围(基本类型的最大最小值)

C/C++ 各类型int、long、double、char、long long取值范围(基本类型的最大最小值)

时间:2023-04-30 14:33:20浏览次数:42  
标签:min int double long max include 取值

做题的时候经常会使用到数据类型的最大最小值(如int, long, long long, char等),我也查了很多次,这次就记下来当笔记吧。

参考了C++ prime plus、各个博客、教程和c++官网,对C/C++中各个类型int、long、double、char、long long等基本类型的取值范围即最大最小值总结如下:

1字节 = 8位,“位”是计算机内存的基本单元

注意:
不同的操作系统和编译器会导致变量的取值范围不同,各位可以使用以下代码查看自己操作系统的变量取值范围:

#include<iostream>  
#include<string>  
#include <limits>  
using namespace std;  
  
int main(){  
    cout << "[type] \t\t" << "[所占字节数]\t[最大值]\t\t[最小值]"<< endl;  
    cout << "bool: \t\t" <<  sizeof(bool) << "\t\t" << (numeric_limits<bool>::max)() << "\t\t\t" << (numeric_limits<bool>::min)() << endl;  
    cout << "char: \t\t" <<  sizeof(char) << "\t\t" << CHAR_MAX << "\t\t\t" << CHAR_MIN << endl;  
    cout << "signed char: \t"  << sizeof(signed char) << "\t\t" << SCHAR_MAX << "\t\t\t" << SCHAR_MIN << endl;  
    cout << "unsigned char: \t" <<  sizeof(unsigned char) << "\t\t" << UCHAR_MAX << "\t\t\t" << (numeric_limits<unsigned char>::min)() << endl;  
    cout << "wchar_t: \t" << sizeof(wchar_t) << "\t\t" << (numeric_limits<wchar_t>::max)() << "\t\t\t" << (numeric_limits<wchar_t>::min)() << endl;  
    cout << "short: \t\t" <<  sizeof(short) << "\t\t" << SHRT_MAX << "\t\t\t" << SHRT_MIN << endl;  
    cout << "int: \t\t" <<  sizeof(int) << "\t\t" << INT_MAX << "\t\t" << INT_MIN << endl;  
    cout << "unsigned: \t" << sizeof(unsigned) << "\t\t" << UINT_MAX << "\t\t" << (numeric_limits<unsigned>::min)() << endl;  
    cout << "long: \t\t" << sizeof(long) << "\t\t" << LONG_MAX << "\t\t" << LONG_MIN << endl;  
    cout << "unsigned long: \t" << sizeof(unsigned long) << "\t\t" << ULONG_MAX << "\t\t" << (numeric_limits<unsigned long>::min)() << endl;  
    cout << "long long: \t" <<  sizeof(long long) << "\t\t" << LLONG_MAX << "\t" << LLONG_MIN << endl;  
    cout << "double: \t" << sizeof(double) << "\t\t" << (numeric_limits<double>::max)() << "\t\t" << (numeric_limits<double>::min)() << endl;
	 cout << "long double: \t" <<  sizeof(long double) << "\t\t" << (numeric_limits<long double>::max)() << "\t\t" << (numeric_limits<long double>::min)() << endl;    
    cout << "float: \t\t" <<  sizeof(float) << "\t\t" << (numeric_limits<float>::max)() << "\t\t" << (numeric_limits<float>::min)() << endl;  
    cout << "size_t: \t" << sizeof(size_t) << "\t\t" << (numeric_limits<size_t>::max)() << "\t\t" << (numeric_limits<size_t>::min)() << endl;  
    cout << "string: \t" << sizeof(string) << endl;  
    cout << "[type] \t\t" << "[所占字节数]\t[最大值]\t\t[最小值]"<< endl;   
    return 0;  
}

该代码是我查看了其他文章和教程的代码后写的,我个人认为那些代码有些乱且有错,同时我也加上了他们都漏掉的long long数据类型的取值范围。

接下来是C++官网的宏定义数据表,作为参考:
头文件:#include 或 #include <limits.h>

教程中的表:

标签:min,int,double,long,max,include,取值
From: https://www.cnblogs.com/bujidao1128/p/17365244.html

相关文章

  • IDEA报错:Internal error :java.lang.illegalAccessErrorjiang
    IDEA报错:Internalerror:java.lang.illegalAccessErrorjiang报错Internalerror:java.lang.illegalAccessErrorjiang原因及解决方法今天在IDEA运行一个新项目时发生了这个报错,原因是该项目使用较新的JDK17版本,而我一直使用的IDEA2019.3.5不支持JDK17,将IDEA版本更换为2021.2.......
  • Java根据Integer数组(有null值)递归构造二叉树
    二叉树:publicclassTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(){}TreeNode(intval){this.val=val;}TreeNode(intval,TreeNodeleft,TreeNoderight){this.val=val;this.l......
  • C++-改变终端(cout/printf)输出不同颜色的字体-Linux
    C++-改变终端(cout/printf)输出不同颜色的字体-Linuxhttps://blog.csdn.net/qq_41972382/article/details/90311102不同颜色的输出主要依据格式ESC[*m,ESC的八进制为\033,*可以是多个属性的组合,用,隔开。printf#include<iostream>usingnamespacestd;intmain(){print......
  • image as set of points
    ImageAsSetOfPointsAbstract提取图像特征的几种方法:ConvNets:将图像视为矩形中有组织的像素,并通过局部区域的卷积运算提取特征;VisionTransformers(ViTs):将图像视为一系列补丁,并通过全局范围内的注意力机制提取特征。ContextClusters(CoCs):上下文聚类将图像视为一组......
  • MFC-SetWindowLong设置窗口样式、窗口标识符ID、处理函数
     修改样式LONGStyles;Styles=GetWindowLong(hWnd4,GWL_STYLE);//获取原窗口风格/*参数1:HWNDhWnd窗口句柄参数2:intnIndex改变窗口上的何种属性*/LONGl=SetWindowLong(hWnd4,GWL_STYLE,Styles|LVS_REPORT);//设置新的......
  • MFC-GetWindowLong获取窗口样式、窗口标识符ID、处理函数
     获取窗口样式LONGStyles=GetWindowLong(hWnd4,GWL_STYLE);//获取窗口风格/*参数1:HWNDhWnd窗口句柄参数2:intnIndex改变窗口上的何种属性窗口属性包括窗口的样式(GWL_STYLE)、扩展样式(GWL_EXSTYLE)、窗口函数、窗......
  • java.io.IOException: line too long
    java.io.IOException:linetoolong 在打jar包时,manifest.mf中所依赖的所有jar路径过长,结果报错说IOException("linetoolong") java.io.IOException:linetoolongatjava.util.jar.Attributes.read(Attributes.java:362)atjava.util.jar.Manifest.read(......
  • 错误until the update interval of nexus-releases has elapsed or updates are force
    错误:untiltheupdateintervalofnexus-releaseshaselapsedorupdatesareforced  (从文件系统里传的,而不是从nexues界面上传的),有些文件nexues从中央仓库里下载不到,本人从别处拷贝一个上传去后,执行mvncompile时出现该错误。  解决办法:mvncleaninstall-U -Umeansfor......
  • Provisional heads are shown、NullPointerException空指针异常?堆栈与队列的区别?Java
    Provisionalheadsareshown排查是否插件拦截,我的以前没有这种,所以排除本地网络节点问题,连接不到图片服务器,以下是解决方法:1.进入到C盘Windows文件夹System32/drivers/etc目录下,打开hosts文件,绑定下2.改下本地dns为公共dns网络节点导致的问题,一般为运营商导致,产生问题的原因为......
  • double转为整型intValue()及sha1在线文件获取,文件都有一个唯一的sha1;jQuery事件方法;
    double转为整型intValue()及sha1在线文件获取,文件都有一个唯一的sha1Doubleindust=RankConstant.INIT_RADIO;indust.intValue()double由100.0---->100整型1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有int......