C++之数据类型及其值的范围

  C++中的常用类型有bool、char、short、int、long、double、float、string等。这些数据类型满足了我们日常变成的需求。

  下面的代码用来打印出各数据类型对应的占字节数及其最大值和最小值。

 1 #include<iostream>
 2 #include<string>
 3 #include <limits>
 4 #include <climits>
 5 using namespace std;
 6
 7 int main()
 8 {
 9     cout << "bool: \t\t" << "所占字节数:" << sizeof(bool);
10     cout << "\t最大值:" << (numeric_limits<bool>::max)();
11     cout << "\t\t\t最小值:" << (numeric_limits<bool>::min)() << endl;
12     cout << "char: \t\t" << "所占字节数:" << sizeof(char);
13     cout << "\t最大值:" << (numeric_limits<char>::max)();
14     cout << "\t\t\t最小值:" << (numeric_limits<char>::min)() << endl;
15     cout << "signed char: \t" << "所占字节数:" << sizeof(signed char);
16     cout << "\t最大值:" << (numeric_limits<signed char>::max)();
17     cout << "\t\t\t最小值:" << (numeric_limits<signed char>::min)() << endl;
18     cout << "unsigned char: \t" << "所占字节数:" << sizeof(unsigned char);
19     cout << "\t最大值:" << (numeric_limits<unsigned char>::max)();
20     cout << "\t\t\t最小值:" << (numeric_limits<unsigned char>::min)() << endl;
21     cout << "wchar_t: \t" << "所占字节数:" << sizeof(wchar_t);
22     cout << "\t最大值:" << (numeric_limits<wchar_t>::max)();
23     cout << "\t\t\t最小值:" << (numeric_limits<wchar_t>::min)() << endl;
24     cout << "short: \t\t" << "所占字节数:" << sizeof(short);
25     cout << "\t最大值:" << (numeric_limits<short>::max)();
26     cout << "\t\t\t最小值:" << (numeric_limits<short>::min)() << endl;
27     cout << "int: \t\t" << "所占字节数:" << sizeof(int);
28     cout << "\t最大值:" << (numeric_limits<int>::max)();
29     cout << "\t\t最小值:" << (numeric_limits<int>::min)() << endl;
30     cout << "unsigned: \t" << "所占字节数:" << sizeof(unsigned);
31     cout << "\t最大值:" << (numeric_limits<unsigned>::max)();
32     cout << "\t\t最小值:" << (numeric_limits<unsigned>::min)() << endl;
33     cout << "long: \t\t" << "所占字节数:" << sizeof(long);
34     cout << "\t最大值:" << (numeric_limits<long>::max)();
35     cout << "\t\t最小值:" << (numeric_limits<long>::min)() << endl;
36     cout << "unsigned long: \t" << "所占字节数:" << sizeof(unsigned long);
37     cout << "\t最大值:" << (numeric_limits<unsigned long>::max)();
38     cout << "\t\t最小值:" << (numeric_limits<unsigned long>::min)() << endl;
39     cout << "double: \t" << "所占字节数:" << sizeof(double);
40     cout << "\t最大值:" << (numeric_limits<double>::max)();
41     cout << "\t\t最小值:" << (numeric_limits<double>::min)() << endl;
42     cout << "long double: \t" << "所占字节数:" << sizeof(long double);
43     cout << "\t最大值:" << (numeric_limits<long double>::max)();
44     cout << "\t\t最小值:" << (numeric_limits<long double>::min)() << endl;
45     cout << "float: \t\t" << "所占字节数:" << sizeof(float);
46     cout << "\t最大值:" << (numeric_limits<float>::max)();
47     cout << "\t\t最小值:" << (numeric_limits<float>::min)() << endl;
48     cout << "size_t: \t" << "所占字节数:" << sizeof(size_t);
49     cout << "\t最大值:" << (numeric_limits<size_t>::max)();
50     cout << "\t最小值:" << (numeric_limits<size_t>::min)() << endl;
51     cout << "string: \t" << "所占字节数:" << sizeof(string);
52     cout << "\t最大值:" << (numeric_limits<string>::max)();
53     cout << "\t\t\t最小值:" << (numeric_limits<string>::min)() << endl;
54     cout << "long long: \t" << "所占字节数:" << sizeof(long long);
55     cout << "\t最大值:" << (numeric_limits<unsigned long long>::max)();
56     cout << "\t最小值:" << (numeric_limits<unsigned long long>::min)() << endl;
57     return 0;
58 }

  程序的运行结果如下图所示。

  从程序运行的结果可以得出以下结论:

  • bool只有两个值,即true和false,在C++语言中可以分别用1和0来表示
  • 能表示小数的数据类型有三种:double、long double和float,其值分别可以占8位、16位和4位
  • 范围最大的整数数据类型是long long,在ACM大赛中常用来处理大数字

  对上述结果做如下补充解释:

  • wchar_t是C++中的一种8位的字符类型,其能表示的范围远超char
  • size_t是sizeof标识符返回的数据的类型,通常用于循环、数组索引、大小的存储和地址运算。其长度虽然与long long类型相同,但基本不会出现在程序中表示一个数字变量
时间: 2024-10-18 21:26:30

C++之数据类型及其值的范围的相关文章

在Visual Studio调试器中显示Unreal的数据类型的值

转自:http://blog.csdn.NET/witton/article/details/5977766 在Unreal引擎中大量使用了自定义的数据类型如:FName,FString,TArray等等,对于这些自定义的数据类型,我们无法直接查看到这些数据的值,但是我们可以编写VS中的autoexp.dat文件中的脚本,来达到我们需要在调试器中显示的方式. 由于在VS2003中的autoexp.dat脚本不支持表达式,而无法全部满足我们对Unreal引擎中自定义的数据类型的调试显示.经过研究,

Java中的基本数据类型默认值扩展

因为在很多情况下,如果要转换的数据为null,调用者期望的是返回默认值. 系统自动提供的默认值不能满足我们的需求,例如int的默认值为0,但是在sql查询中,如果查询失败,我们期望的是小于0的值,例如Select Count(1) from table1这样的操作. 为此,我提供了取得数据类型默认值的扩展函数 目标: 1)实现根据自己需要返回基本类型的默认值 2) 性能不要太差 1: 接口: public static <T> T GetDefault(Class<T> t) 2:

C语言--数据类型--取值范围

C 语言基本数据类型:字符型(char)整形(short, int, long)浮点型(float, double) 注:如下类型字节数指一般情况,不同的平台会有所不同,具体平台可以用sizeof 关键字测试一下. 类型 字节数 类型 字节数 char  1 short 2 int  2(16位系统)或4(32位系统)  long 4 float 4 double 8 类型 范围 类型 范围 (signed)char -128~~127 unsigned char 0~~255 (signed)

javascript基本数据类型与值类型引用类型说明

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了javascript中的基本数据类型,以及值类型和引用类型的区别与使用 一.基本数据类型 在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以说是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String.还含有一种复杂数据类型-Object.

黑马程序员---Java 基本数据类型取值范围讲解

-------android培训.java培训.期待与您交流! ---------- java中的类型概念名的说法不一.让我很是迷茫,我个人的理解整理,如有错误还请高人指点,! 一.Java的类型词语理解: 1) 原始数据类型,简单类型,基本类型都是一个含义: 2)复合类型,扩展类型,复杂类型.引用类型都是一个含义: 3)浮点类型,实数.实型都是一个含义: 4)逻辑型.布尔型都是一个含义: 阅读时需要理解: 定点:定点的意思是把小数点定在末尾,小数点后没有数字的数据,Java中通常把它们称为整数

java基本数据类型取值范围

在JAVA中一共有八种基本数据类型,他们分别是 byte.short.int.long.float.double.char.boolean 整型 其中byte.short.int.long都是表示整数的,只不过他们的取值范围不一样 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1) int的取值范围为(-2147483648~2147483647),占用4个字节(-2

JavaScript基本数据类型及值类型和引用类型

在JavaScript中四种基本的数据类型:数值(整数和实数).字符串型(用“”号或‘'括起来的字符或数值).布尔型(使True或 False表示)和空值.在JavaScript的基本类型中的数据可以是常量,也可以变量.由于JavaScript采用弱类型的形式,因而一个数据的 变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的.当然也可以先声明该数据的类型,它是通过在赋值时自动说明其数据类型的. javascript中的变量 javascript中的变量只是一个占位符,前言已经说过了

c# 第9节 数据类型之值类型

本节内容: 1:数据类型是什么 1:数据类型是什么 2:数据类型--值类型 3:值类型和引用类型的区分 画图现象: 3:值类型的种类 整数: 浮点数: 字符: 原文地址:https://www.cnblogs.com/hero799/p/8654738.html

mysql数据库中,如何对json数据类型的值进行修改?通过json_set函数对json字段值进行修改?

需求描述: 今天在看mysql中存放json数据类型的问题,对于json数据进行修改的操作, 在此记录下. 操作过程: 1.创建包含json数据类型的表,插入基础数据 mysql> create table tab_json(id int not null auto_increment primary key,data json); Query OK, 0 rows affected (0.03 sec) mysql> insert into tab_json values (null,'{&