1、整形
int a = 10; 十进制,格式化输出:%i
int b = 0743; 八进制,格式化输出:%o %#o(输出前导符号0)
int c = 0x7f3d; 十六进制,格式化输出:%x %#x(输出前导符号0x)
2、浮点型
float f = 1.234; 格式化输出:%f(小数部分默认长度为6,不够用0填补)
double d = 1.3e-11 格式化输出:%e(按照科学技术法输出)
在Obj-C中,编译器将把单精度浮点数作为双精度来处理;除非定义为float f=1.23f,则为单精度浮点数。
格式化输出:%g,将省略到浮点型数字的多余0。
4、long
long int a = 10L; 格式化输出:%li %lo %lx,分别使用十进制,八进制,十六进制格式输出。
long long int b = 10LL; 格式化输出:%lli %llo %llx,分别使用十进制,八进制,十六进制格式输出。
long double d = 1.234e+7L; 格式化输出:%Lf %Le %Lg
5、无符号
unsigned int a = 10U, b = 11u;
unsigned long int a = 19UL, b = 119ul;
当一个int的数值太大而无法存入int,并且没有使用后缀时,则编译器当作是无符号的整数来处理。
当一个int的数值太小而无法存入unsigned int,并且没有使用后缀时,则编译器当作是long int来处理。
Basic Data Types
Type | Constant Examples | NSLog chars
char | ’a’, ’\n’ | %c
short int | — | %hi, %hx, %ho
unsigned short int | — | %hu, %hx, %ho
int | 12, -97, 0xFFE0, 0177 | %i, %x, %o
unsigned int | 12u, 100U, 0XFFu | %u, %x, %o
long int | 12L, -2001, 0xffffL | %li, %lx, %lo
unsigned long int | 12UL, 100ul, 0xffeeUL | %lu, %lx, %lo
long long int | 0xe5e5e5e5LL, 500ll | %lli, %llx, &llo
unsigned long long int | 12ull, 0xffeeULL | %llu, %llx, %llo
float | 12.34f, 3.1e-5f, | %f, %e, %g, %a
| 0x1.5p10, 0x1P-1 |
double |12.34, 3.1e-5, 0x.1p3 | %f, %e, %g, %a
long double |12.341, 3.1e-5l | %Lf, %Le, %Lg
id |nil | %p