IOS阶段学习第三天笔记(运算符)

                                         IOS学习(C语言)知识点整理笔记

1、运算符

一、算术运算符

1)表达式由变量、常量、运算符构成,有确定的类型和值

2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模)

3)算术运算符优先级 括号()> * ,/ ,%  >+,-

4)%表示取余、取模  a%b 表示a除以b取余数

5)整数相除保留两位小数处理方法如: printf(“%.2f”,(float)14/9);

6)自增自减运算符:++;- -

7)a++ 与 ++a 的区别: ++a 返回值是a+1, b=++a 相当于a=a+1然后b=a ; a++ 返回值是 a ,b=a++ 相当于b=a 然后a=a+1

二、关系运算符

1)关系运算符包括: >, >=, <, <=, ==, !=

2)关系运算符比较结果成立是 1(true),不成立结果是0(false)

三、逻辑运算符

1)逻辑运算符包括:

&&(逻辑与/并且,要2者都成立才为真);

||(逻辑或/或者 只要一个条件满足即为真);

!(逻辑非/不是)  !(真)=假  !(假)=真  非0=真 逻辑运算符 一般与if连用

四、三目运算符

1)三目运算组成结构:(条件表达式)?(语句1):(语句2)

例如:c= a>b?a:b; 表示 取a b两者中的最大值赋值给c

五、赋值运算符

1)赋值运算符包括:=,+= ,-=,*=,/=,%=

2)+= 表示前变量等于变量原有的值加上后面的值 例如:a+=b 表示 a=a+b;

六、逗号运算符

1)逗号运算符优先级最低 例如 (表达式1、表达式2,.....,表达式n)=表达式n 取最后一个表达式

七、位(单bit)操作运算符

1) 按位与 &  ;  按位或  | ;按位取反 ~ ;位移操作

2)例如:


 1    int a=0xff;
 2    printf(“%d\n”,a&0x0f)//结果为:0x0f=15
 3      /*
 4            分析:
 5                 1111,1111
 6                 0000,1111
 7                 ——————————
 8                 0000,1111(0为假 1为真 &条件下  假&真=加 真&真=真 )
 9     */
10
11      a = 0xf0;
12      printf("%d\n",a|0x0f);//0xff
13     /*
14         1111,0000
15         0000,1111
16     */
17
18     /*把a的第三个bit设置成0,从 第bit算起*/
19     a = 0xcc;//0b11001100
20     a = a&0xf7;
21     /* 1100,1100
22        1111,0111 //0b1100,0100 0xc4=196
23     */
24
25     /*
26       把a的第三个bit设置成1
27     */
28     a = 0;
29     a = a|0x8;
30     /*
31      0000,0000
32      0000,1000 =0x8;
33     */
34     printf("a=%d\n",a);
36     a = 0b110;
37     printf("%d\n",a<<2);//0b1,1000=24
39     a = 0b0110;
40     /*
41      分析:
42       int=4字节=32bit
43       即 a=0b0110=0b 0000,0000,0000,0000,0000,0000,0000,0110
44       按位取反后的结果:1111,1111,1111,1111,1111,1111,1111 ,1001
45     */
46     printf("~a=0x%x=%d\n",~a,~a);//按位取反,0xfffffff9=-7

八、各类运算符的优先级比较

括号(可以嵌套)>单目(++,- -,!)>算术> 关系>逻辑>赋值

九、数据类型转换

 1 int main()
 2 {
 5    int a = 0xfff1; 7    char c = a;//隐式转化9     printf("%d=0x%x\n",c,c);//截断,取低8bits
11     printf("%f\n",(float)14/5);//强制类型转换,14转成float
13     /*
15      1、与long运算,转成long
17      2、float参与运算,转成double运算
19      3、char 和short运算的时候,转成 int
21      4、有符号->无符号
23      */
25     float f = 3.14;
27     printf("3.14+2000=%f\n",f+2000);
29     char ch1 = -128;//0x80
31     int i = ch1;//char->int.位扩展:负数补1,正数补0
33     //0x80(char)-> 0xffff,ff80
35     printf("i=%d=0x%x\n",i,i);
37     ch1 = 8;//0x8
39     i = ch1;//char->int.位扩展:负数补1,正数补0
41     printf("i=%d=0x%x\n",i,i);
43     return 0;
45  }

十、宏定义

1)宏定义一般都为大写 格式:#define 别名 (大写) 表达式/ 参数

2)宏定义的作用是 怎么代码可读性 方便修改

3)例如 通过宏定义求两数最大值 方法:

1   #define MAX(a,b) a>b?a:b
2   #include <stdio.h>
3    int main(){
4         printf(“请输入两个数:\n”);
5         scanf(“%d%d”,&a,&b);
6         printf(“最大值是:%d”,MAX(a,b));
7         return 0;
8    }
时间: 2024-10-06 00:16:33

IOS阶段学习第三天笔记(运算符)的相关文章

IOS阶段学习第四天笔记(循环)

    IOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双分支 if表达式不成立 则执行else{ }里面的语句 3.字符串的输出系统会从数组地址一直打印到字符 ‘\0’为止,如果没有正确初始化,可能会打印出数组外的信息 4.如果分支结构里面只有一条执行语句可省略外面的大括号{} . 二.开关语句 1.语句结构 :switch (参数) case

IOS阶段学习第17天笔记(OC中文件的操作)

IOS学习(OC语言)知识点整理 一.单例模式 1)单例是一种编程思想,一个设计模式,与语言无关在采用了单例对象的应用程序中,需要单例类自行提供实例化单例对象, 不管实例化单例对象多少次,只有一个对象存在,这个对象是全局的,能够被整个应用程序共享,访问 2)使用单例模式时使用类提供的类方法获取单例对象,尽量不要用alloc init的方法获取单例对象 3)单例类提供类方法获取单例对象时类方法一般以sharedXX/standedXX/defaultXX开头 实例代码: #import "Plan

IOS阶段学习第13天笔记(NSString与NSMutableString)

IOS学习(OC语言)知识点整理 一.OC字符串的操作 1)OC中字符串分为两种: 1.不可变字符串NSString:不能修改对象内容,但是可以改变对象的指针. 2.可变字符串NSMutableString:可以修改对象内容. 二.NSString 不可变字符串的操作 1)将字符串常量对象直接赋值给字符串引用 NSString *[email protected]"hello"; 字符串对象的输出格式:NSLog(@"str1=%@",str1). 2)initWi

IOS 阶段学习第23天笔记(XML数据格式介绍)

IOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使用比较广泛的两种网络传输数据格式 两者分别占比: 1. json:市场上占90%,轻量级的表示数据 2.xml:占10%,表示数据比较复杂 3)XML三种数据解析方法: 1.DOM解析:将整个xml数据加载到内存中,构造一个对象,从根结点开始一级一级的解析提取数据.缺点:如果数据大, 比较占内存,解

IOS阶段学习第21天笔记(ARC内存管理-Copy-代理)

IOS学习(OC语言)知识点整理 一.OC 中的ARC内存管理 1)ARC中释放对象的内存原则:看这个对象有没有强引用指向它 2)strong:强引用,默认情况下的引用都是强引用 3) weak:弱引用__weak 4)ARC环境下:与内存相关的代码都不能使用了,如果要在ARC环境下使用MRC内存管理代码 如: [super    delloc]  选中项目找到 Build Phases 菜单下的  Compile Sources 项 选中要转换的.m文件, 双击写入此行代码:-fno-objc

IOS阶段学习第16天笔记(Category、NSSet、NSIndexSet的操作)

IOS学习(OC语言)知识点整理 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 例如: //宏定义 #define TOBJ(n) [NSNumber numberWithInt:n] NSSet *set1=[[NSSet alloc]initWithObjects:TOBJ(2),TOBJ(3),TOBJ(3),TOBJ(1),TOBJ(5), nil]; 2)用类方法创

iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)

iOS学习(UI)知识点整理 一.关于UIButton的介绍 1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能 2)UIButton 的几种常用的状态        1.UIControlStateNormal  正常状态        2.UIControlStateHighlighted 高亮状态        3.UIControlStateSelected 选中状态  -> 当button的selected设置成yes之后才能触发 3)UIButton常用的几种事件 

IOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)

IOS学习(OC语言)知识点整理 一.OC中的字典 1)字典:是一个容器对象,元素是以键-值对(key-value)形式存放的,key和value是任意类型的对象,key是唯一的,value可以重复 2)OC中的字典有两种 1.不可变字典:NSDictionary,初始化后不能修改其内容 2.可变字典:NSMutableDictionary,初始化后可以修改其内容 二.NSDictionary 字典的操作 1)实例化方法创建字典对象 例如: 1 NSDictionary *dict1=[[NSD

iOS阶段学习第33天笔记(自定义标签栏(tabBar)介绍)

iOS学习(UI)知识点整理 一.自定义标签栏 1)方法一 单个创建标签栏 1 #import "AppDelegate.h" 2 #import "SecondViewController.h" 3 #import "ViewController.h" 4 #import "ThirdViewController.h" 5 #import "ForthViewController.h" 6 #import