学习笔记:不同编程语言的数据类型总结区分
数据类型时编程的基础也是需要核心掌握的知识点,要能够分清楚出不同数据类型表示的数据以及数据需要定义的数据类型。不同的系统或是编程语言,在定义数据类型时可能有所区别,在学习运用时要加以区分,避免混淆,这里我对数据进行了简单的区分和总结,加深一下印象。
Java数据类型
8种基本数据类型:byte,short,int,long,float,double,char,boolean。
类型 | 描述 | 范围 |
---|---|---|
byte | 8位,有符号,默认值 0 | -2^7 - 2^7 -1 |
short | 16位,有符号,默认值 0 | -2^15 -2^15 -1 |
int | 32位,有符号,默认值 0 | -2^31 -2^31 -1 |
long | 64位,有符号,默认值 0L | -2^63 -2^63 -1 |
float | 单精度32位,默认值0.0f | |
double | 双精度64位,默认值0.0d | |
char | 单个16位Unicode字符 | \u0000 -\uffff |
boolean | 一个比特位,false/true | true /false |
引用数据类型:数组,类,接口
C语言数据类型
C语言中有4种类型的数据类型
类型 | 包含的类型 |
---|---|
基本数据类型(Basic Data Type) | char,int, float, double |
派生数据类型(Derived Data Type) | array, pointer, structure, union |
枚举数据类型(Enumeration Data Type) | enum |
Void数据类型(void Data Type) | void |
C语言基本数据类型:内存大小可能会根据32位或64位操作系统而有所变化;在没有标明unsigned情况下,大多数默认情况是有符号的。
类型 | 描述 | 值范围 |
---|---|---|
char | 1字节/8位,字符类型 | -128 到 127 |
unsigned char | 1字节/8位,无符号char | 0 到 255 |
short | 2 字节/16位,短整型 | -32,768 到 32,767 |
unsigned short | 2 字节/16位,无符号short | 0 到 65,535 |
int | 4 字节/32位,整型 | -2,147,483,648 到 2,147,483,647 |
unsigned int | 4 字节/32位,无符号int | 0 到 4,294,967,295 |
long | 4 字节/32位,长整型 | -2,147,483,648 到 2,147,483,647 |
unsigned long | 4 字节/32位,无符号long | 0 到 4,294,967,2957 |
float | 4字节,6~7位有效数字 | -3.4E-38 到 3.4E+38 |
double | 8字节,15~16位有效数字 | -1.7E-308 到 1.7E+308 |
long double | 16字节,18~19位有效数字 | -1.2E-4932 到 1.2E+4932 |
注意:C语言本身是没有bool类型的,一般用int取代或者自定义枚举。但在C99标准里面,又定义了bool类型变量,只要引入头文件 <stdbool.h>,就能在C语言里面正常使用bool类型。
C++数据类型
总的来说,C++的基本数据类型和C语言的差不多。
类型 | 关键字 |
---|---|
字符型 | char |
整型 | int |
浮点型 | float/double |
布尔型 | bool |
宽字符型 | wchar_t |
无类型 | void |
可以使用一个或多个类型修饰符进行修饰:signed,unsigned,short,long。
类型 | 描述 | 范围 |
---|---|---|
char | 8位/1 字节 | -128 到 127 或者 0 到 255 |
unsigned char | 8位/1 字节 | 0 到 255 |
int | 32位/4 字节 | -2147483648 到 2147483647 |
unsigned int | 32位/4 字节 | 0 到 4294967295 |
short int | 16位/2 字节 | -32768 到 32767 |
unsigned short int | 16位/2 字节 | 0 到 65,535 |
long int | 64位/8 字节 | -/+9,223,372,036,854,775,808 |
unsigned long int | 64位/8 字节 | 0 到 18,446,744,073,709,551,615 |
float | 4 字节 | +/- 3.4e +/- 38 (~7 个数字) |
double | 8 字节 | +/- 1.7e +/- 308 (~16 个数字) |
long double | 16 字节 | +/- 1.2e +/- 4932 (~19 个数字) |
wchar_t | 2 或 4 字节 | 1 个宽字符 |
补充:在C/C++中可以使用sizeof()运算符返回数据类型所占的内存字节,32位系统和64位系统的结果可能是不同的。下面是一个简单的对比:
数据类型 | 32位编译器 | 64位编译器 |
---|---|---|
char | 1个字节 | 1个字节 |
char*(即指针变量) | 4个字节 | 8个字节 |
short int | 2个字节 | 2个字节 |
int | 4个字节 | 4个字节 |
unsigned int | 4个字节 | 4个字节 |
float | 4个字节 | 4个字节 |
double | 8个字节 | 8个字节 |
long | 4个字节 | 8个字节 |
long long | 8个字节 | 8个字节 |
unsigned long | 4个字节 | 8个字节 |