当前位置: 首页 > article >正文

逻辑非运算“!”,双重非运算

刚毕业的小新在阅读同事的代码时,看到一个 ( !! Vmode<<6 )  的运算,刚开始看到的时候很疑惑,这双重取非不是又回到原来的值了吗?研究了好一会才搞清楚是怎么回事。

第一步我们需要了解:                                                                                                                 

“!” 运算符含义表示“逻辑非运算”,即为0、1运算,使用形式为“!表达式”,且自右向左运算;
“!” 运算符优先级高于左移运算符“<<” ;
表达式是指由常量、变量、函数,通过运算符连接起来而形成的一个算式,一个常量,一个变量或一个函数都可以看成是一个表达式。
                                                                                           

假设我们定义

1  int Vmode = 3;
2  int a[3] = {0};
3  a[0] = Vmode<<6;
4  a[1] = !Vmode<<6;
5  a[2] = !!Vmode<<6;

a[0] = Vmode<<6很容易计算得出等于192;                                                                               

因为  Vmode = 3 > 0
所以  逻辑非运算“!Vmode” 就相当于     “!1”

那么得到一下结果:
a[1] = !Vmode<<6 = (!1)<<6 = 0<<6 = 0;
a[2] = !!Vmode<<6 = (!(!1))<<6 = (!(0))<<6 = 1<<6 = 64;

本次分享其实是很简单的运算问题,但是像我这样的小新很容易对运算符的含义理解不清或者是容易模糊理解,就比如“!”运算符的含义指的是“逻辑非”运算,一开始我就很自然地按位取反来操作,结果怎么都算不出来,但实际上的结果应该是非0即1 ,这就是逻辑运算的含义。

希望本次分享可以帮助到像我这样对运算符的使用理解不清楚的小伙伴,也希望大家可以借此分享举一反三,同时本文有表达错误的地方,欢迎给予指正!
 

http://www.lryc.cn/news/2420487.html

相关文章:

  • [技巧攻略] Zombie Cafe攻略 僵尸咖啡厅图文详解+刷级攻略
  • Node.js可以做什么
  • 理解P值
  • 09、Swift中的class
  • 淘宝宝贝详情页设计指南:从构思到实现,打造高转化率的页面
  • 详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景
  • PL/SQL 例外(异常) exception
  • windows下钩子的使用
  • 设计测试用例(蘑菇街web的登录页面)
  • Windows中DLL文件基本原理及修改方法
  • MySQL Cluster 集群部署
  • navicat for mysql cannot create file
  • Code Jam练习
  • 这几个免费资源网站太强了!老司机们都收藏了!
  • 影视后期制作的探索:C4D与MAYA的比较
  • 2024年五一数学建模竞赛C题思路解析+代码+论文
  • 2024年软件测试工具总结 —— 性能测试工具
  • 微信网站域名如何做防封和防屏蔽技术
  • VC 下Microsoft Speech SDK 5.1 开发小结
  • 戴尔不再提供电脑和手机互联功能:Mobile Connect应用将终止服务(学习资料)
  • Flex的item Editor,itemReder小结 ——(学习自FlexCookbox)
  • echarts 地图_博客 城市访问量统计并且通过Echarts+百度地图展示
  • 什么是代理服务器?如何在编程中使用它?
  • 免费收录网站搜索引擎登录口
  • Spring 基于.xml的bean配置
  • CCF 期刊、会议 推荐目录
  • 基于JAVA医院医护人员排班系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  • 使用CSS3画出一个叮当猫(超级可爱!)
  • 程序员电影,荧屏里的程序员形象
  • 关于list_entry