C语言操作符(%,,|,^,<<,>>)
有目录,可自由选择。
- 取余符号%
取余符号是求余数,如5%2=1,17%6=5;
但是要注意的是参与取余的2个数都必须为整型数。
- 与符号&-按二进制位与
如:
#include<stdio.h>
int main()
{int a = 3, b = 5;int c = a & b;printf("%d\n", c);return 0;
}
与符号是将符号2边的数写成2进制,一一对齐,上下2个数&&,只有同真才为真;
a=3写成二进制是 00000000000000000000000000000011;
b=5写成二进制是 00000000000000000000000000000101;
2个数进行运算是 00000000000000000000000000000001;
得到二进制数1,二进制数1转换成十进制是1,所以输出结果是1;
总结:
以二进制形式进行运算,以十进制形式输出结果。
- 或符号|
或符号和与符号类似,都是以二进制形式进行运算,十进制输出。但|符号只有2假时才为假,其他情况为真;
a=3写成二进制是 00000000000000000000000000000011;
a=5写成二进制是 00000000000000000000000000000101;
进行或运算 00000000000000000000000000000111;
111换算成十进制是7,即输出结果为7;
- 异或符号^
进行异或运算时也是以二进制形式进行,异或运算的方法就是相同为0,相异为1;
a=3写成二进制是 00000000000000000000000000000011;
a=5写成二进制是 00000000000000000000000000000101;
进行异或运算 00000000000000000000000000000110;
110换算成十进制是6,即输出的结果为6;
- 右移操作符>>
#include<stdio.h>
int main()
{int a = 8;int c = a >>1;printf("%d\n", c);return 0;
}
右移操作符也是以二进制形式进行,a>>1,表示以二进制形式向右移动一位;
a=8的二进制表示是1000如图:
右操作符分为2种:
1.算数移位
右边丢弃,左边补原符号位;
2.逻辑移位
右边丢弃,左边补0;
不过一般计算机都采用算数移位,如上图,移位补位后得到的结果为100,转换成10进制是4;即输出结果为4;
要特别注意的是负数存储到内存中的是补码,要将原码换成补码后在进行移位,在这里不多讲,可以参考
C语言二进制(原码,反码,补码)
6.左移操作符<<
左移操作符就是将二进制数向左移相应的位数,右边补0.
若a=8, c=a<<3;则移位后补0是1000000,转换成10进制是64.
此文章中涉及到较多关于二进制的问题,并没有详讲,可以参考
C语言二进制http://t.csdn.cn/UilQ8
最新文章
- 微信架构 支付架构(下)
- 素数筛选-hdu2710
- 鸿蒙系统有无隐私空间,华为鸿蒙OS系统有隐私空间功能吗 华为p40使用鸿蒙系统体验评测...
- 走出浮躁的泥沼:浮躁的社会原因 控制好自己的物欲
- HTML5 Canvas中绘制线段
- java 获取本机的IP和hostname
- Kubernetes 一键部署实践
- 微信机器人 DIY 从 0 到 1
- Jmeter使用HTTP代理服务器无法打开网页问题的解决方法
- UA MATH523A 实分析3 积分理论例题 Fubini定理计算简单一元定积分的一个例题
- 计算机调用计算器快捷键,Windows系统打开计算器的快捷键 计算器快捷键大全
- 华为鲲鹏云主机编译安装MySQL 8.0.17
- Java技术进阶推荐书单
- 济南大雨,银座亲历(转载)
- 苹果电脑查看python版本_Mac终端查看python版本号
- 游戏陪玩App,如雨后春笋般冒出,直接导致整个游戏陪玩源码市场的持续火爆
- 创业这10种死法,你死在哪一种了
- 7-4 偶数乘2奇数乘3 (10分)
- 2020年6月最新iOS面试题总结(答案篇)
- 908. Smallest Range I