操作符详解
2021/11/13 6:14:50
本文主要是介绍操作符详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.算术操作符
+ - % /
除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。 % 和 / 的用法更多: 1.对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。 2.% 操作符的两个操作数必须为整数。返回的是整除之后的余数。2.移位操作符
移位操作符操作的是整数,整数在内存中存储的是补码,打印或者使用时,用的原码值
<< >> 二进制位的移动
一.左移操作符 <<
#include <stdio.h> int main() { int a = 5; a = a << 2; // 00000000000000000000000000000101原码 5 // 00000000000000000000000000000101反码 // 00000000000000000000000000000101补码 // 00|00000000000000000000000000010100 20 // 二进制位往左移两位 printf("%d", a); return 0; }
左移的规则:左边的抛弃、右边空缺的补0
二.右移操作符 >>
#include <stdio.h> int main() { int i = -5; i = i >> 2; // 10000000000000000000000000000101 原码 -5 // 11111111111111111111111111111010 反码 // 11111111111111111111111111111011 补码 // 二进制位往右移两位 // 11111111111111111111111111111110|11 补码 // 11111111111111111111111111111101 反码 // 10000000000000000000000000000010 原码 -2 printf("%d", i); return 0; }
右移的规则:
1. 逻辑移位左边用0填充,右边丢弃
2. 算术移位左边用原该值的符号位填充,右边丢弃(现在的编译器一般为第二种移位规则)
*******对于移位计算符,需要注意的是:
不要移动负数位,这个是标准未定义的
3.位操作符
& 按位与 | 按位或 ^ 按位异
它们的操作数必须为整数
用一道练习来加深理解:
不能创建临时变量(第三个变量),实现两个数的交换
#include <stdio.h> int main() { int a = 5; int b = 3; printf("打印前:a=%d,b=%d\n", a, b); a = a ^ b; b = a ^ b;//此时的a = a^b,所以 b = a^b = a^b^b 。此处b^b=0 , b = a^(b^b)= a^0 = a a = a ^ b;//由上可知b = a , a = a^b ,所以a = a^b^b 。此处a^a=0 , a = (a^a)^b = b printf("交换后: a=%d,b=%d\n", a, b); return 0; }
4.单目操作符
! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度(以字节为单位) ~ 对一个数的二进制按位取反 -- 前置、后置 -- ++ 前置、后置 ++ * 间接访问操作符 ( 解引用操作符 ) ( 类型 ) 强制类型转换这篇关于操作符详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南