zoukankan      html  css  js  c++  java
  • 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
    ”,a&0x0f)//结果为:0x0f=15
     3      /*
     4       分析:
     5         1111,1111
     6         0000,1111
     7         ——————————
     8         0000,1111(0为假 1为真 &条件下  假&真=假 真&真=真 )
     9     */
    11      a = 0xf0;
    12      printf("%d
    ",a|0x0f);//结果:0xff
    13     /* 
    14      1111,0000
    15      0000,1111
    16     */
    18     /*把a的第三个bit设置成0,从 第bit算起*/
    19     a = 0xcc;//0b11001100
    20     a = a&0xf7;
    21     /* 
    1100,1100
    22 1111,0111 //0b1100,0100 0xc4=196 23 */ 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 ",a); 36 a = 0b110; 37 printf("%d ",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 ",~a,~a);//按位取反,0xfffffff9=-7

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

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

     九、数据类型转换

     1 int main()
     2 {
     5    int a = 0xfff1;
    7 char c = a;//隐式转化
    9 printf("%d=0x%x ",c,c);//截断,取低8bits 11 printf("%f ",(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 ",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 ",i,i); 37 ch1 = 8;//0x8 39 i = ch1;//char->int.位扩展:负数补1,正数补0 41 printf("i=%d=0x%x ",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("请输入两个数:
    ");
    5      scanf("%d%d",&a,&b);
    6      printf("最大值是:%d",MAX(a,b));
    7      return 0;
    8    }

     十一、输入输出

     1) scanf()/getchar()  用于接收用户输入  printf()/putchar() 用于输出信息

     2)scanf(“格式化字符串”,参数地址列表)  scanf 输入参数必须加上“& ”取地址符号,字符串数组除外; scanf根据回车键执行,

         根据Tab或空格来分隔字符,回车表示接收结束,scanf 接收输入是也可指定长度,如果输入信息大于指定长度

         则从右向左截取; 例如:int a=12345;scanf(“%3d”,&a)  printf(“%d”,a)输出结果为 123 ;输入信息小

        于指定宽度则无影响。

     3)printf(“格式化字符串”,输出信息); printf 中可通过格式化字符串中置入数字来设定输出宽度 ;

          例如:printf(“%8d”,19) 向右推移8个长度输出19 ;如果输出数据大于指定宽度则不起作用

     4)解决scanf输入缓冲区问题 即:当输入为char(%c)类型 前面有输入时会直接跳过本次的输入。

        代码实例:

     1     short s;
     3     printf("输入一个Short
    ");
     5     scanf("%hd",&s);
     7     printf("输出一个Short值%hd
    ",s);
     9     char c,last;
    11     printf("输入一个char
    ");
    13     scanf("%c",&c);//方法一  输入缓冲区里面残留一个回车符 %c作为有效输入 
    scanf("%c",&c);
    15 //last=getchar();//方法二 getchar()从里面取走一个字符
    17 printf("输出一个char值%c ",c);

  • 相关阅读:
    mongodb安装
    node版本的管理 n
    npm 命令
    nodejs,npm安装(ubuntu14.04下)
    yeoman,grunt,bower安装(ubuntu14.04)
    什么是堆和栈,它们在哪儿?
    malloc函数详解 (与new对比)
    单链表的C++实现(采用模板类)
    短信验证码
    webapi
  • 原文地址:https://www.cnblogs.com/ChinaKingKong/p/4591803.html
Copyright © 2011-2022 走看看