1、OC基本数据类型



     在介绍基本数据类型之前,先扯点别的,OC中的所有变量都要求先声明后使用,声明变量时需要指定数据类型,也要指定变量名,说起变量名,就要先看一下标识符规则,标识符就是用于给程序中的变量、类、方法命名的符号,标识符使用有以下规则:
1.标识符可以由字母、数字、下划线和美元符组成,不能以数字开头。
2.标识符不能是OC中的关键字,但可以包含关键字。
3.标识符不能包含空格。
3.标识符不能包含除美元符($)外的其他特殊符号。

     OC的基本数据类型包括:整型、字符型、浮点型、布尔型、枚举型。
一、整型
整型包含以下几种类型
1.short(短整型):内存中通常占2字节,即16位,取值范围-32768 - +32767。
2.int(整型):通常占4字节,取值范围-2147483648 - 2147483647
3.long(长整型):通常占8字节
4.long long(长整型):通常占8字节
关于内存中占用的字节数,OC中并没有硬性的规定,只是需要字节数符合以下条件:
short <= int <= long<= long long
因此在我们实际开发时需要注意在mac还是在ios系统上到底是占多大的空间,以免数据溢出。

        // 基本数据类型
        int a = 10;
        //下面的数已经超出了int的取值范围,编译器会提出警告
        int b = 10000000000000;
        NSLog(@"%d",b);
        //而这个数在long long的取值范围内,所以不会溢出
        long long c =1000000000000;
        NSLog(@"%lld",c);
        //mac系统下输出各种类型占用的位数
        //输出:short:2 int:4  long:8  long long:8
        NSLog(@"short:%lu int:%lu  long:%lu  long long:%lu",sizeof(short),sizeof(int),sizeof(long),sizeof(long long));

整型有3种进制表示方式:十进制,八进制,十六进制

   //八进制,以0开头
        int i8 = 010;
        //十进制
        int i10 = 10;
        //十六进制,以0x或者0X开头
        int i16 = 0x10;
        //8  10   16
        NSLog(@"%d  %d   %d",i8,i10,i16);



整型前加上unsigned关键字后,将它变成无符号整型,最高位不是符号位,而是数值位。无符号整数不能表示负数,但是表示范围大了。
        short s = 32768;
        unsigned short  us = 32768;
        //输出-32768,32768,说明正整数表示范围比原先大了
        NSLog(@"%d,%u",s,us);


二、字符型
字符型在OC中只占用一个字节,OC字符变量不支持中文字符,字符需要使用’’包起来,char类型也可以看作整型值来使用,它是一个8位无符号整数,取值范围0-255。
另外可以通过转义字符表示特殊字符常量:
转义字符
说明
\b
退格
\n
换行
\r
回车
\t
制表符
\"
双引号
\'
单引号
\\
反斜杠

三、浮点型

浮点类型包括float、double和long double,float占用4字节,double占8字节,long double占16字节。
OC中浮点数表示方法有两种,一种是包含小数点的简单的浮点数,另一种是科学计数法形式的浮点数
//利用浮点数计算类型取值范围
        int i0  =-1/0.0;
        int i1 = 1/0.0;
        //输出:int型取值范围:-2147483648-2147483647
        NSLog(@"int型取值范围:%d-%d",i0,i1);

四、布尔型
OC中BOOL类型有两个值:YES和NO
        BOOL b1 = YES;
        if (b1) {
            NSLog(@"%d",b1);
        }

        BOOL b1 = 10;
        //输出: YES: 10
        if (b1) {
            NSLog(@"YES: %d",b1);
        }else{
            NSLog(@"NO: %d",b1);
        }

        BOOL b1 = 768;
        //输出: NO: 0
        if (b1) {
            NSLog(@"YES: %d",b1);
        }else{
            NSLog(@"NO: %d",b1);
        }


注意:不要以为所有的非0整数变量赋给BOOL类型就一定得到YES,上面的768的出的就是NO,BOOL类型实质上就是signed char。

五、枚举型
一个变量只有几种可能的值,这个变量就可以定义为枚举变量
        enum season {spring,summer,fall,winter};
       
        enum season mySeason = spring;
       
        mySeason = summer;

六、格式字符
在NSLog函数中我们使用了很多格式字符,如%d,%lu等。我们这里将介绍NSLog支持的格式字符。

格式字符 说明
d 以带符号的十进制形式输出整数
o 以八进制无符号形式输出整数
x 以十六进制无符号形式输出整数
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出c风格的字符串
f 以小数形式输出浮点数,默认输出6位小数
e 以指数形式输出浮点数,数字部分默认输出6位小数
g 自动选用%f和%e,保证输出宽度较短的格式,而且不会输出无意义的0
p 以十六进制形式输出指针变量所代表的地址值
@ 输出OC的对象

%与格式字符之间可以插入以下附加符号

格式字符 说明
l 可在格式字符d、o、x、u之前,用于输出长整型整数,也可在f、e、g之前,用书输出长浮点型数
m(m代表一个正整数) 指定输出数据所占的最小宽度
.n(n代表一个正整数) 对于浮点数,表示输出n位小数,对于字符串,表示截取的字符个数
- 表示输出的字符向左边对齐








  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值