c语言异或运算符_C语言基础--运算符

fb3b6f0c86e1e4868e06bdb2913a2f1d.png

运算符

算术运算符

运算符举例

+加 a+b

-减 a-b

*乘 a*b

/除 a/b

%求余 a%b

加减和乘法运算符不必多说,我们来看看除法运算符和求余运算符

除法运算符

  • 两个实数相除的结果为双精度实数,两个整数相除的结果为整数(一般向0取整)

例如:5/3 运行结果为1,舍去了小数部分

根据整数除法特性:四舍五入 设计方法

  • 四舍五入到个位
#include
  • 四舍五入到小数点后两位
#include
  • 当然也有函数可以实现四舍五入
<stdio.h>里面有个 round() 函数 将浮点值舍入为最接近的整数。
#include

求余运算符

求余只能两个整数求余

利用求余得到整数的各个位数:水仙花数 算法

#include

关系运算符和逻辑运算符

关系运算符

关系运算符和逻辑运算符主要用在分支和循环里面作为条件判断真假
  • 比较的结果有两种状态 1 和 0 真(1)和假(0)

关系运算符举例>小于 1>2 为假,结果为0<大于 1<2 为真,结果为2>=大于等于 1>=2 为假,结果为0<=小于等于 1<=2 为真,结果为1==等于 1==2 为假,结果为0!=不等于 1!=2 为真,结果为1

  • 对于小数 浮点型数据不够精确 一般不用==
  • 0.009<x<0.011 这种数学表达式就禁用了,要用逻辑运算符来连接

逻辑运算符

&& 逻辑与

  • 左右两个条件都为真 最后的结果为真 否则(只要有一个为假) 结果为假
if

|| 逻辑或

  • 左右两边的条件只要有一个为真 结果为真 两边都为假 结果为假
if

!逻辑非

  • 一般放在一个条件前面 真变假 假变真
关于用数字作为条件 0为假 非0为真

逻辑运算符的截断

  • 逻辑与 两边都为真 结果为真
  • 左边为假 直接得到整个式子的结果为假(右边可以不用算)
#include
  • 逻辑或 左边为真 右边可以不用算(截断)

位运算符(二进制运算符)

学C语言很少用到二进制,但是,我们需要了解他
  • 按位与 &
  • 对一个二进制数字操作:有0则0
 14&89       14二进制:1110      89二进制:0101 1001
         0000 1110
         0101 1001
 按位与   0000 1000
 结果为:0000 1000(二进制),10(十进制)
  • 按位或 |
  • 对一个二进制数字操作:有1则1

按位异或 ^

  • 对一个二进制数字操作:相同为0不同为1

按位取反~

  • 对一个二进制数字操作:1变0 0变1
 ~14         14二进制:0000 1110
         0000 1110
 按位取反 1111 0001
  • 左移 <<
  • x<<n 去掉前面的n位 后面补上n个0
 14<<2       14二进制:0000 1110
             0000 1110
             0011 1000
 左移补0  结果为0011 1000
  • 右移 >>
  • x>>n 去掉后面的n位 前面补上n个符号位(正数前面补0 负数前面补1)
对于一个正整数 右移一位相当于除以2

异或 ^

  • 特点:对于同一个数字异或两次会得到它本身
14
  • 异或的用法
  • 简单的加密
z=x^y 对x进行加密
a=z^y 对z进行解密

交换两个变量的值

//利用临时变量交换

赋值运算符

把一个值赋值给一个变量: 左值 = 右值 把右值赋值给左值

x
  • 左值 只能是变量
  • 右值 可以是数字 表达式(1+2)

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

条件 ? 表达式1 : 表达式2

//求两个数的最大值

其他运算符

() 括号运算符

  • 改变计算顺序(优先级)
  • 类型转换
(

类型转换存在的问题:精度高的数据 转换成精度低的数据 可能会丢失数据

类型 char int float double 精度由低到高

(

++ --自增和自减

前++

先运算,再自增

int  

后++

先自增,再运算

int  

前加加,后加加探讨(小白勿看)

#include

输出结果:15,22,8,8

  • 这个涉及到 前加加先运算,再自增;后加加先自增,再运算 这一特性
#include
  • 这又涉及到C的特性:语句编译时从右往左

& 取变量地址

  • scanf("%d",&a);

sizeof 计算变量/类型的大小

  • sizeof(int)

逗号运算符 隔开几个表达式

int 

其他

  • [] 下标运算符
  • . 点运算
  • -> 箭头运算符
  • *指针运算符
  • () 函数
  • {}语句

其他后面介绍

优先级

  • 这个不需要记,需要用的时候查表就可以
  • 从上到下优先级降低
  • 不清楚优先级顺序加()

c19ac6ccd95eb3e157d8fb5e51457940.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值