数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转化问题。
转换的方法有两种:

  • 隐私转换:遵守一定的规则,有编译器自动完成。小类型数据—->大类型数据
  • 强制类型转换:把表达式的运算结果强制转成所需要的数据类型。大类型数据—->小类型数据
1
2
3
4
5
6
7
8
9
//--------------隐士类型转换----------
int a = 10;
double b = a;
NSLog(@"b=%f", b);

//--------------强制类型转换 会丢失精度----------
double a = 1.89;
int b = (int)a;
NSLog(@"b=%d", b);

在64位操作系统,常见类型的变量分配的内存空间大小,以及打印

数据类型 内存空间大小 取值范围
int 4 [-2^32 2^31-1]
unsigned int 4 [0 2^32-1]
float 4 [-2^32 2^31-1]
double 8 [-2^64 2^64-1]
long 8 [-2^64 2^64-1]
long long 8 [-2^64 2^64-1]

数据类型打印占位符:

打印格式 含义
%hd 输出short类型
%d 输出int类型
%l 输出long类型
%ll 输出long long类型
%hu 输出unsigned short 类型
%u 输出unsigned int类型
%lu 输出unsigned long类型
%llu 输出unsigned long long类型