[C语言 - 13] 运算符
2024-08-20 15:08:11
算术运算符
运算符的优先级
括号 > 正负 > 数学运算 > 位运算 > 数学对比 > 逻辑对比 > 条件运算 > 赋值运算
A.赋值运算符
复合赋值运算符
+=
-+
*=
/=
B.自增自减
a++ ++a
a— —a
ps:没有自乘自除:a** a//
C.sizeof
输出所占字节数
D.关系运算
除了0之外都是true
返回值只有0和1, 真即为1, 假即为0
存在多个运算符的时候,可以使用结果1和0继续按照优先级顺序运算
E.逻辑运算
逻辑运算的结果只有1和0
逻辑与: &&
逻辑或: ||
位与: &
位或: |
位抑或: ^
#include<stdio.h>
intmain(intargc,constchar* argv[]) {
intresult =1^1;
printf("result = %d\n", result);
return0;
}
out:
result = 0
逻辑非: !
任何数值都有真假!!!
F.三目运算
xx?xx:xx
#include<stdio.h>
intmain(intargc,constchar* argv[]) {
inta =10;
intb =20;
intresult = a>b?33:11;
printf("result = %d\n", result);
return0;
}
out:
result = 11
G.位运算
1.& 按位与
2.| 按位或
3.^ 按位抑或
同类型的位运算复合运算符合交换律
4.~ 按位取反
注意在64位系统中, int占8字节,且以补码形式存在,是在此条件下取反
5.<<n 左移
能够按照实际数值进行位移,数值最高位消去,且符号位不会改变
相当于乘以2的n次方
6.>> 右移
使用^交换两个变量值
int l = 10;
int m = 20;
l = l ^ m;
m = l ^ m;
l = l ^ m;
printf("l = %d, m = %d\n", l , m);
int m = 20;
l = l ^ m;
m = l ^ m;
l = l ^ m;
printf("l = %d, m = %d\n", l , m);
利用位运算符计算奇偶
普通方法
a%2==0?printf("偶数!\n"):printf("奇数\n”);
位运算
a&1?printf("奇数!\n"):printf("偶数\n");
编写二进制输出函数
最新文章
- Android笔记——Handler Runnable与Thread的区别
- Android6.0动态申请权限
- 《CSS 设计指南》学习笔记 一
- 第一节 SOA的基本概念和设计思想
- WM_INITDIALOG与WM_CREATE消息的区别
- [转载]C#读取Excel几种方法的体会
- CocoaPods的一些理解
- 如何在word中写出赏心悦目的代码
- css使用技巧
- android细节之禁用activity的系统的默认切换效果
- [Unity3D]Unity3D持久性数据的游戏开发PlayerPrefs采用
- 学习面向对象编程OOP 第一天
- Apache日志分割
- freemarker中的split字符串分割(十六)
- Algorithm in Practice - Sorting and Searching
- Leetcode_260_Single Number III
- Telegraf安装与介绍
- MT【290】内外圆求三角最值
- webstorm更改scss输出路径
- u3d发送邮件
热门文章
- 深入剖析Classloader(二)--根类加载器,扩展类加载器与系统类加载器
- HDU1875——畅通工程再续(最小生成树:Kruskal算法)
- CodeForces114E——Double Happiness(素数二次筛选)
- 编码识别工具:hash-identifier
- 【iOS开发】iOS7 兼容及部分细节
- 用PHP尝试RabbitMQ(amqp扩展)实现消息的发送和接收
- http_build_query函数(学习)
- IPC是什么意思?
- Repeater实例应用
- vijos1603迷宫