基本类型比较

Java基本数据类型

类型类别 类型名称 大小(位) 取值范围 默认值
整数类型 byte 8 -128 到 127 0
short 16 -32,768 到 32,767 0
int 32 -2^31 到 2^31-1 0
long 64 -2^63 到 2^63-1 0L
浮点数类型 float 32 精度约为 6-7 位十进制数 0.0f
double 64 精度约为 15 位十进制数 0.0d
字符类型 char 16 0 到 65,535(无符号)
布尔类型 boolean 未指定 truefalse false

注意:

  1. Java的char类型是基于Unicode编码的,因此可以表示全球上几乎所有的字符。
  2. Java的基本数据类型大小是固定的,与平台无关,这有助于Java程序具有良好的可移植性。
  3. Java中没有表示无符号整数的基本数据类型,在需要大范围无符号数据时通常使用更大的类型或使用类库。
  4. 布尔类型boolean并没有明确指定大小,但仅能取truefalse中的一个值。

C++基本数据类型

类型类别 类型名称 大小(至少) 描述
整型 char 8位 通常用于存储字符。根据实现可能是有符号或无符号的。
unsigned char 8位 存储小的无符号整数或字符。
signed char 8位 存储小的有符号整数或字符。
short 16位 存储短整数。
unsigned short 16位 存储短无符号整数。
int 16位 存储整数。
unsigned int 16位 存储无符号整数。
long 32位 存储长整数。
unsigned long 32位 存储长无符号整数。
long long 64位 存储更长的整数(C++11)。
unsigned long long 64位 存储更长的无符号整数(C++11)。
浮点数类型 float 实现依赖 单精度浮点数。
double 实现依赖 双精度浮点数。
long double 实现依赖 扩展精度浮点数。
布尔类型 bool 实现依赖 用于表示布尔逻辑(真或假)。
字符类型 wchar_t 实现依赖 宽字符类型,用于Unicode字符。
char16_t 16位 用于表示UTF-16字符(C++11)。
char32_t 32位 用于表示UTF-32字符(C++11)。
空类型 void N/A 表示无类型,常用于指定无返回值的函数类型。
固定宽度整数类型 (例如:int8_t, uint32_t 实现依赖 提供固定宽度的整数表示(C++11,需包含<cstdint>头文件)。

请注意,所提供的大小是类型在C++标准中规定的最小大小,实际大小可能会因编译器和平台的不同而有所不同。 若要获取平台特定的大小,通常使用sizeof运算符进行检查。