c语言——位运算符及用法
发布日期:2021-06-29 11:10:58
浏览次数:3
分类:技术文章
本文共 794 字,大约阅读时间需要 2 分钟。
1;位运算;
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。(均以二进制的补码形式) 整数;及只能是带符号或者无符号的char,short,int,long类型;2;c语言中的6种位运算符;
& 按位与——如果两个相应的二进制位都为1,则该位的结果值为1,否则为0; | 按位或——两个相应的二进制位中只要有一个为1,该位的结果值为1; ^ 按位异或—— 若参加运算的两个二进制位值相同则为0,否则为1; ~ 取反 ——~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0; << 左移 用来将一个数的各二进制位全部左移N位,右补0; ;>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0;3;运算符的应用;
3.1;按位与&; 3.1.1;清零;列如101010;清零就是与1000000进行&;即可; 3.1.2;保留指定位;及与一个指定位为1其余都为0的&即可; 3.2;按位或|; 3.3;按位异或^; 3.3.1;交换两个值,不用临时变量;a=a∧b; b=b∧a; a=a∧b;a=011(2) (∧)b=100(2)a=111(2)(a∧b的结果,a已变成7) (∧)b=100(2)b=011(2)(b∧a的结果,b已变成3) (∧)a=111(2)a=100(2)(a∧b的结果,a已变成4)//及实现了交换;
3.4;按位取反~;他是一元运算符,用于求整数的二进制反码,即分别将操作数各二进制位上的1变为0,0变为1。
3.5;左移与右移;
左移<<是乘;但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。 右移>>是除; 8<<2 ——8乘以2的二次方;则等于32; 8>>2——8除以2的二次方;则等于2;转载地址:https://blog.csdn.net/zw1996/article/details/52621984 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月21日 08时30分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
突破!台积电1nm芯片,有了新进展。
2019-04-29
一文读懂全系列树莓派!
2019-04-29
自制一个害羞的口罩,见人就闭嘴,戴着可以喝奶茶
2019-04-29
聊聊我是如何编程入门的
2019-04-29
J-Link该如何升级固件?
2019-04-29
从电子垃圾中提炼黄金,可以!!!
2019-04-29
知乎大神深入解析:单片机晶振脚原理是什么?
2019-04-29
电容有17种?看看详细介绍!
2019-04-29
如何准备电赛?19年电赛经验总结!
2019-04-29
蓝牙:为啥叫“蓝”牙,不叫“白”牙?
2019-04-29
干货 | 如何系统学习 C 语言?
2019-04-29
多层PCB内部长啥样? 3D大图解析高端PCB板的设计工艺
2019-04-29
鸿蒙2.0都来了,快搭个环境玩起来吧!
2019-04-29
PCB散热的10种方法!
2019-04-29
值得收藏!268条PCB layout设计规范
2019-04-29
Keil升级了,Keil Studio 来了!
2019-04-29
关于RS-485总线,这篇很详细
2019-04-29
关于2021年电赛的一些想法,看到就是赚到!
2019-04-29
教你一秒分辨真假芯片!
2019-04-29
抽奖 | 送STM32开发板
2019-04-29