基本类型和转换操作
数据类型
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,647 |
unsigned int |
2 或 4 字节 |
0 到 65,535 或 0 到 4,294,967,295 |
short |
2 字节 |
-32,767 |
unsigned short |
2 字节 |
0 到 65,535 |
long |
4 字节 |
-2,647 |
long long long int |
8 |
-9223372036854775808~+9223372036854775807 |
unsigned long |
4 字节 |
0 到 4,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。
【图片来自:biancheng.net】
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。
对于有些地方,
|