前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从Java到C++——基本数据类型

从Java到C++——基本数据类型

作者头像
用户7886150
修改2020-12-02 14:29:39
4860
修改2020-12-02 14:29:39
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Java中的数据类型

基本数据类型是C++最基本的内容,虽然各种计算机语言的基本数据类型的含意和用法大体相同,但各种语言下基本数据类型的字节大小,数值范围等是不一样的,这也是程序开发都必须要了解的。

    Java中有8种基本的数据类型,详细内容请参见《Java中的50个关键字》 ,C++中基本数据类型的各类就多了。详细如下:

C++中,基本数据类型也称内置类型,有算术类型和空类型。空类型(void)没有具体的值,只用于某些特殊的场合,如函数的返回值void。算术类型有整形数、浮点数、布尔类型和字符。

    下表列出了C++标准规定的尺寸的最小值,C++标准只给定了尺寸的最小值,同时允许编译器赋予这些类型更大的尺寸。所以同一个数据类型在不同平台不同操作系统下尺寸大小有可能不同。

C++:数据类型

分类类型含义最小尺寸整形数short短整形16位int整形16位long长整形32位long long长长整形64位浮点数float单精度浮点数6位有效数字double双精度浮点数10位有效数字long double扩展精度浮点数10位有效数字布尔类型bool布尔类型未定义字符char字符8位wchar_t宽字符16位char16_t16位unicode字符16位char32_t32位unicode字符32位

我在win7 x64系统上用VS2010和VS2013上测试了一下以上各种数据类型的大小如下:

void sizeTest()

{

    cout << "short:\t\t" << sizeof(short) << endl;

    cout << "int:\t\t" << sizeof(int) << endl;

    cout << "long:\t\t" << sizeof(long) << endl;

    cout << "long long:\t" << sizeof(long long) << endl;

    cout << "float:\t\t" << sizeof(float) << endl;

    cout << "double:\t\t" << sizeof(double) << endl;

    cout << "long double:\t" << sizeof(long double) << endl;

    cout << "bool:\t\t" << sizeof(bool) << endl;

    cout << "char:\t\t" << sizeof(char) << endl;

    cout << "wchar_t:\t" << sizeof(wchar_t) << endl;

    cout << "char16_t:\t" << sizeof(char16_t) << endl;

    cout << "char32_t:\t" << sizeof(char32_t) << endl;

}

    结果为:

    这里上面的int就是4个字节32位,大于标准规定的16位。

整形数和char类型又有带符号的和无符号的之分

    short、int、long、long long、char都有带符号和无符号两种。带符号的(signed)类型可以表示正数、负数和0,short、int、long、long long、char默认都带符号的。无符号的(unsigned)类型则只能表示正数和0,只需要在对应的类型名前面加unsigned,如unsigned int和unsigned char。在计算机中数值是以二进制的形式存储的,带符号的类型第一位是符号位,用于表示正负数,1表示负数,0表示正数;无符号的类型没有符号位,所有位数都用于表示数值的大小。如以short类型的为例:

    7表示成如下

    00000000 00000111

    -7表示:

    10000000 00000111

    假设一个数据类型的尺寸大小为n位,则带符号的表示的数值范围是-2n-1—2n-1-1; 无符号的表示的数值范围是0—2n-1.

bool类型是只表示true和false

    bool是用于表示正确(true)和错误(false)的一种逻辑类型,其中true和false是一种标识符,应该是一种宏定义,true为1,false为0。在程度中整数和浮点数都可以给bool类型的变量赋值,但只有当值为0时表示假,非0时都表示真。如下:

void BoolTest() 

{

    bool b1 = true;

    bool b2 = false;

    bool b3 = 0;

    bool b4 = 1;

    bool b5 = 5;

    bool b6 = -8;

    bool b7 = 1.25;

    cout << "true:\t" << true << endl;

    cout << "false:\t" <<  false << endl;

    cout << "b1:\t" << b1 << endl;

    cout << "b2:\t" << b2 << endl;

    cout << "0:\t" << b3 << endl;

    cout << "1:\t" << b4 << endl;

    cout << "5:\t" << b5 << endl;

    cout << "-8:\t" << b6 << endl;

    cout << "1.25:\t" << b7 << endl;

}

结果为:

true:   1

false:  0

b1:     1

b2:     0

0:      0

1:      1

5:      1

-8:     1

1.25:   1

short和short int是等价的

    在程度中常常能看到short int,是否又有什么不同呢?short和short int应该是等价的,short应于修饰int,short是short int的简写。还有long和long int也是等价的。

如下程度:

    short st1 = 10;

    short int st2 = 10;

    long l1= 20;

    long int l2 = 20;

    cout << st1 << endl;

    cout << st2 << endl;

    cout << l1 << endl;

    cout << l2 << endl;

    cout << "short:\t\t" << sizeof(short) << endl;

    cout << "shot int:\t" << sizeof(short int) << endl;

    cout << "long:\t\t" << sizeof(long) << endl;

    cout << "long int:\t" << sizeof(long int) << endl;

结果如下:

10

10

20

20

short:          2

shot int:       2

long:           4

long int:       4

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档