c语言中可以使用加减乘除(+,-,*,/)以及取余(%)这些操作符

注意点:

a、0不能做除数,不能对0进行取余,0.0可以做除数,结果是无穷大。

b、取余操作的两边必须是整数;

c、两个整数相除,结果取整数部分;

d、浮点数不能取余;

赋值操作符(=)用于对变量赋值,左边必须是变量,右边是可以当成数字使用的内容,赋值操作符的优先级很低,但是比,优先级高

多个赋值操作符从右向左计算

复合赋值操作符(+=,-=,*=,/=),其优先级和赋值操作符的优先级一样

自增,自减运算符(++,–),只能对变量进行操作,两种操作(前操作、后操作)的区别在于操作的时机

前操作的优先级非常高,后操作的优先级非常低

不要在一条语句中对同一个变量进行多次自增或自减运算

逻辑表达式的计算结果或者是真或者是假

c语言中用数字1表示真,数字0表示假

布尔类型用来表示真和假这两个内容,布尔类型的名称是bool。为了使用布尔类型,需要包含头文件stdbool.h,布尔类型只包含两个数字,true(代表真)和false(代表假)

逻辑操作符用来拼写逻辑表达式

所有整数都可以当逻辑表达式使用,0代表假,其他所有整数都代表真

求反(!)也是一个逻辑操作符

逻辑操作符的优先级低于算术操作符

两个逻辑操作符可以用来把两个简单的逻辑表达式合并成一个复杂的逻辑表达式,他们分别是&&(与)和||(或)

&&和||都具有短路特性(当前一个逻辑表达式可以决定整个表达式的计算结果时,后一个逻辑表达式根本就不会计算)

一般不要在逻辑表达式中对变量内容作修改

关系运算符

等于(==),不等于(!=),大于(>),小于(=)和小于等于(<=)

注意点:在c语言中,如果进行大小判断i < j < k,这样写不是取j大于i小于k之间的数据,编译器认为,从左向右进行判断i < j,(1,0)用这个结果与k进行判断

i < j && j < k ———-正确的逻辑

位运算符(针对二进制进行计算)

1、按位与(&)

0 & 0 0

1 & 1 1

0 & 1 0

3 & 5=0000 0011 & 0000 0101=0000 0001

按位与可以把某些二进制位清零

2、按位或(|)

0 | 0 0

1 | 1 1

1 | 0 1

3 | 5 = 0000 0011 | 0000 0101=0000 0111

按位或可以把一个数字的某些数位设置成1

3、按位异或(^)

按位异或:对应的二进制位相同为0,不同为1

0 ^ 0 0

1 ^ 1 0

1 ^ 0 1

3 ^ 5 = 0000 0011 ^ 0000 0101 =0000 0110

按位异或可以把某些数位求反(与1按位异或)

a、两个相同的数按位异或,结果为0

b、任何数与0取异或,结果都是其本身

int a = 10;b = 20;

a = a^b;

b = a^b;

a = a^b;

上面代码实现的是交换a,b两个变量中的数据

a = 10 ^ 2o

b = a ^ b = 10 ^20 ^20 = 10

a = a ^ b =10 ^20 ^ 10 =20

还可以通过加减运算,不引入第三个变量,交换两个数的值,但任何类型的变量,都有一个取值范围

int类型的取值范围(-2^31~2^31-1,负21亿到正21亿),a+b超过范围,则只会截取四个字节的数据,造成数据丢失

4、按位求反(~)

把一个数字中的所有二进制数位求反

~3 = 1111 1100=0xfffffffc

三目运算符(条件运算符) ? :

三目运算符可以根据一个逻辑表达式从两个数值中选择一个作为结果

移位操作符:左移(<>)

左移固定在右边补0,如果一个数字向左移动n位,且有效数位没有损失,那么数字增大2的n次方

3 << 2 = 0000 0011 << 2 =0000 1100 = 12

12 >> 2 =0000 1100 >> 2 =0000 0011 = 3

一个数字右移,在左边的所有移后的空位上,补符号位,无符号数字右移左边补0

int num=0x8000000c >> 2 =0xe0000003

取地址操作符(&)

*操作符(指针运算符)可以根据变量的地址表示变量

逗号运算符

用于连接多个表达式

表达式1,表达式2,…表达式n

a、顺序求值,会从左边第一个表达式开始,顺序向右计算各个表达式的值

b、逗号表达式的结果,是取其中最后一个表达式的值,即取表达式n的值

隐式类型转换会把一个表达式中所有数字都转换成同一个类型,然后再进行计算 把占地小的数据转换成占地大的类型后再计算,占地同样大小的数据则把有符号数据转换成无符号数据 整数转换成浮点数 隐式类型转换只是把原数据转换成某种新的同一形式用于计算,但并不会改变原来的数据 强制类型转换可以把一个数字转换成另外一种类型使用,使用方法如下: (char)100 表示把数字100当成char类型使用 强制类型转换过程中有可能造成数据的丢失 printf(“%d,%d”,300,(char)300);

c语言使用位运算符包含头文件,C语言的运算符相关推荐

  1. c语言 自动包含头文件,C语言不要重复包含.h头文件和.c文件

    http://blog.csdn.net/unix21/article/details/8450235 2012 1.不要重复包含头文件 --以上出自<C语言程序设计:现代方法(第2版)> ...

  2. c语言中关于不包含头文件string.h仍然可以使用strlen函数以及strlen函数计算数组时结果问题

    先说头文件string.h里的strlen函数 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串 ...

  3. c语言处理字符串函数的头文件,C语言字符处理函数 - 20131125的个人空间 - OSCHINA - 中文开源技术交流社区...

    C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入.输出.合并.修改.比较.转换.复制.搜索几类. 使用这些函数可大大减轻编程的负担.用于输入输出的字符串函数,在使用前应包含头文件" ...

  4. 【转】C++中#include包含头文件带 .h 和不带 .h 的区别

    C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些 ...

  5. c语言的所有头文件,C语言所有头文件.doc

    C语言所有头文件 C语言所有头文件 stdlib.h包含了很多标准函数和标准宏定义,比如NULL, EXIT_SUCCESS等. ctype.h包含了很多类型定义 string.h包含了字符串操作相关 ...

  6. 单片机sleep函数的头文件_c语言的 sleep函数到底在哪个头文件里啊

    展开全部 在里面. 在VC中使用时,sleep函数的头文件为windows.h,在Linux下,gcc编译器中,使用的头文件因gcc版本62616964757a686964616fe59b9ee7ad ...

  7. vhdl文件添加c语言头文件,C语言对VHDL设计文件的协同仿真 - 基于Modelsim FLI接口的协同仿真技术...

    4 C语言对VHDL设计文件的协同仿真 4.1 构成框图 仿真文件的构成如图3所示,包括HDL文件和动态链接库(即c程序).图中c程序对应的VHDL文件要负责声明对应的动态链接库文件名及初始化函数,另 ...

  8. 文件 单片机_单片机C语言编程中reg52.h头文件的作用

    前言:本人出于爱好将不定期发送电气电工.前端.单片机等内容,可能会无法顾及关注我的所有人需求,请大家按需收藏自己想要知识,有用则收之,无用则弃之,不系统更新,仅供零星学习O(∩_∩)O哈哈~ 在代码的 ...

  9. C++包含头文件几种方式

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105042381 包 ...

最新文章

  1. python nonetype_python装饰器 ——@符号与“TypeError: ‘NoneType’ object is not callable” | 学步园...
  2. 算法六之直接插入排序
  3. 华为交换机屏蔽远程计算机,华为交换机远程telnet配置的小问题
  4. 让英文版的LINUX 支持中文显示
  5. JQuery使用总结
  6. idea 格式化代码怎么才能不格式化代码注释?
  7. Hudi-Flink SQL实时读取Hudi表数据
  8. 拍照的时候怎么让表情自然?
  9. react强制页面刷新
  10. java图片处理---Javax.imageIO包的用法
  11. 一篇文章构建你的 NodeJS 知识体系
  12. 我们既然选择了远方,便只顾风雨兼程)
  13. 5G助威云游戏前哨战,科技公司竞逐游戏界“Netflix”名号
  14. java 登录牵手_智慧职教2020Java程序基础章节答案
  15. 一个简单问题,Java里,如何得到一个月有多少天???
  16. CSR8675学习笔记:新建一个GATT server
  17. GRUB--多系统启动引导器
  18. 傅里叶级数的理解与简单推导
  19. CICS(cics路况快速检测系统)
  20. java 常驻内存_如何用java做常驻内存的程序

热门文章

  1. python怎么解压_Python-解压缩的方法
  2. 独立站可以一个人做吗?
  3. 独立站现在好不好做?
  4. 剑指offer (05):替换字符串中空格 (C++ Python 实现)
  5. Centos7 安装Jdk1.8u172
  6. [转]magento2项目上线注意事项 切换到产品模式
  7. protocol buffer开发指南
  8. 吴恩达机器学习 逻辑回归 作业2(芯片预测) Python实现 代码详细解释
  9. 第四:Pytest框架之命令行参数(二)
  10. hbuilder能用python_Hbuilder之开发Python