学习笔记:不同编程语言的数据类型总结区分

数据类型时编程的基础也是需要核心掌握的知识点,要能够分清楚出不同数据类型表示的数据以及数据需要定义的数据类型。不同的系统或是编程语言,在定义数据类型时可能有所区别,在学习运用时要加以区分,避免混淆,这里我对数据进行了简单的区分和总结,加深一下印象。

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个字节
posted @ 2019-10-04 17:52  microbit1024  阅读(973)  评论(0编辑  收藏  举报