美文网首页
郝斌C语言笔记 -- 运算符

郝斌C语言笔记 -- 运算符

作者: Jorunk | 来源:发表于2017-11-24 15:00 被阅读30次

运算符

1.算术运算符

       +       -       *        /(除)        %(取余数)

2.关系运算符

       >       >=      <        <=         !=(不等于)      =

3.逻辑运算符

       !(非)       &&(并且)       ||(或)

       !真            假
       !假            真

       真&&真         真
       真&&假         假
       假&&真         假
       假&&假         假


       真||假         真
       假||真         真
       真||真         真
       假||假         假

4.C语言对真假的处理

  • 非零是真

  • 零是假

  • 真是1表示

  • 假是0表示

  • &&左边的表达式为假 右边的表达式肯定不会执行

  • ||左边的表达式为真 右边的表达式肯定不会执行

5.赋值运算符

       =      +=     *=      /=
  • a+=3是等价于a=a+3,a/=3等价于a=a/3

6.优先级别

  • 算术 > 关系 > 逻辑 > 赋值

7.自增(自减)

分类

  • 前自增
++i;
  • 后自增
i++;

前自增和后自增的异同

  • 相同
    • 都使i的值加1
  • 不同
    • 前自增表达式的值是i加1之后的值(先自增后赋值)
    • 后自增表达式的值是i加1之前的值(先赋值后自增)

学习自增要明白的几个问题

  1. 我们编程时应该尽量屏蔽掉前自增和后自增的差别
  2. 自增表达式最好不要作为一个更大的表达式的一部分来使用,或者说 i++ 和 ++i 单独成一个语句,不要把它作为一个完整复合语句的一部分来使用,如:
 int m = i++ + ++i + i + i++;
 printf("%d %d %d",i++,++i,i);
//这样写是不规范代码,而且是不可移植的代码

8.三目运算符

格式

A ? B : C

等价于

if (A) {
        B
    } else {
        C
    }

9.逗号表达式

格式

(A, B, C, D)

功能

  • 从左到右执行
  • 最终表达式的值是最后一项

位运算符

& ---按位与

  • && -- 逻辑与
  • &&与&完全不同
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

5 (0101) & 7 (0111) = 5
21 (00010101) & 7 (0111) = 5
5 (0101) & 1 (0001) = 1
5 (0101) & 10 (1010) = 0

| ---按位或

  • || -- 逻辑或
1 | 0 = 1
1 | 1 = 1
0 | 1 = 1
0 | 0 = 0

~ --- 按位取反

  • ~i就是把i变量所有的二进制取反

^ ---按位异或

  • 相同为0
  • 不同为1
1 ^ 0 = 1
0 ^ 1 = 1
1 ^ 1 = 1
0 ^ 0 = 1

<< --- 按位左移

  • i<< 3 表示把i的所有二进制位左移3位,右边补0
  • 左移n位相当于乘以2的n次方,前提是数据不能丢失
面试题:
        A) i = i* 8;
        B) i = i<< 3;
        请问上述两个语句,哪个语句执行速度快
        答案:B快

>> --- 按位右移

  • i>> 3 表示把i的所有二进制位右移3位,左边一般是补0,也可能补1
  • 右移n位相当于除以2的n次方,前提是数据不会丢失
面试题:
        A) i = i / 8;
        B) i = i>> 3;
        请问上述两个语句,哪个语句执行速度快
        答案:B快

位运算的现实意义

  • 通过位运算我们可以对数据的操作精确到每一位

相关文章

  • 郝斌C语言笔记 -- 运算符

    运算符 1.算术运算符 2.关系运算符 3.逻辑运算符 4.C语言对真假的处理 非零是真 零是假 真是1表示 假是...

  • 郝斌C语言笔记

    #include int main(void) { return 0; }

  • 郝斌C语言笔记 -- 概述

    概述 1.为什么学习C语言? 1. C语言的起源和发展 1. 主流计算机语言(了解) Fortran语言主要用于科...

  • 郝斌C语言笔记 -- 预备知识

    预备知识 1.数据类型 1.基本数据类型 2.复合数据类型 结构体 枚举 共用体 2.变量 1.什么是变量 变量的...

  • 给表弟的计算机自学教程

    1.c语言视频:郝斌c语言教程 链接:https://www.bilibili.com/video/av80745...

  • C语言

    刚刚查分数,90分。 感觉自己摸到了C语言的大门。 我的学习资源来自---郝斌的C语言视频。 直到今天我把C语言的...

  • 郝斌C

    注意: 课程注意的地方:59、74、递归在数据结构 笔记: 公式:被除数/除数=商取余%的运算对象必须是整数,结果...

  • 郝斌C语言笔记 -- 输入输出函数

    输入和输出函数 1.printf() -- 将变量的内容输出到显示器上 .1四种用法 2.输出控制符 3.为什么需...

  • 【初识C语言】C语言中的运算符

    C语言中的运算符 1运算符和表达式 C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具。C语言的运算异常...

  • C语言基础教程之运算符

    C语言内置运算符丰富到令人头皮发麻,C语言基础教程之运算符篇 C语言运算符 运算符是告诉编译器执行特定数学或逻辑函...

网友评论

      本文标题:郝斌C语言笔记 -- 运算符

      本文链接:https://www.haomeiwen.com/subject/plcfbxtx.html