基本类型和转换操作
数据类型
C语言中的基本类型如下。
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
unsigned char | 1 字节 | 0 到 255 |
signed char | 1 字节 | -128 到 127 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
unsigned int | 2 或 4 字节 | 0 到 65,535 或 0 到 4,294,967,295 |
short | 2 字节 | -32,768 到 32,767 |
unsigned short | 2 字节 | 0 到 65,535 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
long long long int | 8 | -9223372036854775808~+9223372036854775807 |
unsigned long | 4 字节 | 0 到 4,294,967,295 |
float | 4 字节 | 1.2E-38 到 3.4E+38 |
double | 8 字节 | 2.3E-308 到 1.7E+308 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 |
C# 和 java 基本数据类型如下
C#类型 | java类型 | 描述 | 默认值 |
---|---|---|---|
bool | boolean | 布尔值 | False |
byte | byte | 8 位无符号整数 | 0 |
char | char | 16 位 Unicode 字符 | ' ' |
decimal | BigDecimal(非基本) | 128 位精确的十进制值,28-29 有效位数 | 0.0M |
double | double | 64 位双精度浮点型 | 0.0D |
float | float | 32 位单精度浮点型 | 0.0F |
int | int | 32 位有符号整数类型 | 0 |
long | long | 64 位有符号整数类型 | 0L |
sbyte | 无 | 8 位有符号整数类型 | 0 |
short | short | 16 位有符号整数类型 | 0 |
uint | 无 | 32 位无符号整数类型 | 0 |
ulong | 无 | 64 位无符号整数类型 | 0 |
ushort | 无 | 16 位无符号整数类型 | 0 |
C语言中, char 为 一字节,使用 ASCII 编码,C# 和 Java 中,字符类型(char)都是 2字节,使用 Unicode 编码。
C# 和 Java 中 ,无论是 32 位 机器还是 64 位机器, int 都是 4 字节,long 8字节。
数据类型使用示例
C/C++
c语言的基本类型使用示例如下。
short a = 1; // short int a = 1;
int b = 1;
long c = 1L; // long类型,数字需要带 L
long long d = 1LL; // 两个ll
char e = '1';
float f = 1.0;
double g = 1.0F; // 使用F
C语言 默认整形类型为 int,浮点数类型为 float。
因此赋值常量的时候,如果不是默认的类型,则需要在数值后加上 L 或 F。
short 不需要加;double 加的是 F。
C语言中,不同进制的表示方法:
- 默认为10进制 ,如10 ,20,直接赋值即可。
- 8进制,开头加上0,如012,013。
- 二进制,开头加上0b,如0b11。
- 16进制,开头加上0x,大小写不分,0x21458adf。
注意的是,只有整型才能有这些进制表示法,浮点型不行的。
C#
、JAVA
C# 和 JAVA 中使用上面同样示例,如下
short a = 1;
int b = 6_666_666;
long c = 1L; // long类型,数字需要带 L
char e = '1';
float f = 1.0F;
double g = 1.0;
byte h = 1;
C# 和 JAVA 中默认整型是 int,浮点型是 double。
因此 float 要带 F。
C# 和 JAVA 中使用的进制表示法,跟 C 语言一致。
另外,C# 和 JAVA 中,可以使用下划线来分隔数字,提高可读性。例如
int b = 6_666_666;
int b = 0b00000000_00000000_00000000_00000001;
关于布尔型
C 语言中,没有布尔型。
C++ 为 bool,C# 为 bool,java 为 boolean。
C语言中没有 bool 类型,但是很多地方都需要 true 和 flase,怎么解决呢?
C 语言 一般使用 1
和 0
或 非0
和 0
表示 true 和 flase。
对于有些地方,