C语言基本数据类型及转换规则
2014-05-08 16:04
274 查看
C语言的基本数据类型;有点奇怪的是为什么float和double不用signed/unsigned修饰。
基本类型转换有以下规则:
1. 当有符号数与无符号数同类型进行运算时,会自动转化为无符号数进行运算;此时负数会用它的补码进行运算。
2. 当不同类型数据进行运算时,会自动转换为高类型,具体转换规则如下。
3. 赋值时:等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;高类型向低类型赋值时,精度丢失,长度变短。
4.
函数调用时:将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参。
5. 函数有返回值时:系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。
符号属性 | 长度属性 | 基本型 | 所占位数 | 取值范围 | 输入符举例 | 输出符举例 |
-- | -- | char | 8 | -2^7 ~ 2^7-1 | %c | %c、%d、%u |
signed | -- | char | 8 | -2^7 ~ 2^7-1 | %c | %c、%d、%u |
unsigned | -- | char | 8 | 0 ~ 2^8-1 | %c | %c、%d、%u |
[signed] | short | [int] | 16 | -2^15 ~ 2^15-1 | %hd | |
unsigned | short | [int] | 16 | 0 ~ 2^16-1 | %hu、%ho、%hx | |
[signed] | -- | int | 32 | -2^31 ~ 2^31-1 | %d | |
unsigned | -- | int | 32 | 0 ~ 2^32-1 | %u、%o、%x | |
[signed] | long | [int] | 32 | -2^31 ~ 2^31-1 | %ld | |
unsigned | long | [int] | 32 | 0 ~ 2^32-1 | %lu、%lo、%lx | |
[signed] | long long | [int] | 64 | -2^63 ~ 2^63-1 | %I64d | |
unsigned | long long | [int] | 64 | 0 ~ 2^64-1 | %I64u、%I64o、%I64x | |
-- | -- | float | 32 | +/- 3.40282e+038 | %f、%e、%g | |
-- | -- | double | 64 | +/- 1.79769e+308 | %lf、%le、%lg %f、%e、%g | |
-- | long | double | 96 | +/- 1.79769e+308 | %Lf、%Le、%Lg |
1. 当有符号数与无符号数同类型进行运算时,会自动转化为无符号数进行运算;此时负数会用它的补码进行运算。
2. 当不同类型数据进行运算时,会自动转换为高类型,具体转换规则如下。
3. 赋值时:等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;高类型向低类型赋值时,精度丢失,长度变短。
4.
函数调用时:将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参。
5. 函数有返回值时:系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。
相关文章推荐
- C语言_基本数据类型范围、类型之间的转换规则、打印某个内存连续的内存值
- C语言中不同数据类型间混合运算的转换规则
- C语言的基本数据类型及数据类型转换
- IEEE754浮点格式简述 和 C语言基本数据类型转换实质
- c语言基本数据类型short、int、long、char、float、double大小及命名规则
- C语言字节数组转换为基本数据类型
- java基本数据类型自动转换规则
- IEEE754浮点格式简述 和 C语言基本数据类型转换实质
- JavaScript基本数据类型及其转换规则
- 关于基本数据类型转换规则
- C语言中不同数据类型间混合运算的转换规则
- C语言中基本的数据类型所占有的字节数
- javascript:引入 基本数据类型 基本语法 类型转换 数组的单列
- 前端-javascript-不同数据类型间的运算,数据类型转换规则
- 黑马程序员——Java基本数据类型及其相互转换
- 基本数据类型数组转换列表显的有些力不从心
- 10_基本数据类型自动转换_强制转型_类型提升问题
- JavaScript 基本数据类型和Object 转换
- javascript基本数据类型和转换
- C语言-基本数据类型