c语言位运算符解释_c语言逻辑关系运算符

c语言位运算符解释_c语言逻辑关系运算符      位操作是程序设计中对位模式按位或二进制数的一元和二元操作,在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。按位取反:~’~’是一元运算符,用来对一个二进制数按位取反,把0变为1,把1变为0。如下例子所示。…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

位操作是程序设计中对位模式按位或二进制数的一元和二元操作,在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。
按位取反:~
‘~’是一元运算符,用来对一个二进制数按位取反,把0变为1,把1变为0。如下例子所示。

~(10001100)          //表达式
  (01110011)          //结果值

进行取反运算时符号位也会取反
按位与:&
‘&’是二元运算符,通过逐位比较两个运算对象,生成一个新值。对于每个位,只要两个运算对象中相同的位有一个0就是0,两个都为1时才为1。

(01101101)&(10001001)          //表达式
(00001001)                                  ;//结果值

按位或:|
‘|’是二元运算符,对应位的二进制只要有一个为1就为1,两个都为0才为0。

(10010011)  |  (00111101)          //表达式
(10111111)                                 //结果值

按位异或:^
‘^’是二元运算符,两个二进制序列进行异或运算,对应位的二进制相同为0,相异为1。

(10010011) ^ (00111101)           //表达式
(10101110)                                //结果值

逻辑运算符一般在if语句中使用,包括逻辑与(&&)、逻辑或(||)、逻辑非(!)
逻辑与(&&):
参与运算的两个表达式都为真时,结果才为真,否则为假。
在c语言中,0为假,非0就为真

	int a = 10;
	int b = 0;
	if (a && b)
	{ 
   
		printf("hehe\n");
	}

a的值是10,为真,b的值是0,为假。
此时a&&b的结果就是0,为假,不会输出hehe。

	int a = 10;
	int b = 5;
	if (a && b)
	{ 
   
		printf("hehe\n");
	}

当把b改成5时,此时b也为真,逻辑与两侧都为真,此时a&&b结果是1,输出hehe。
逻辑与运算判断出第一个表达式为假后,后面的表达式就不会再计算了

	int a = 0,b = 5,c = 10;
	int i = a && b && c;

此时a=0为假,i的值就是0,不会对b和c两个表达式进行运算了。
逻辑或(||):
参与运算的表达式有一个为真时结果就是真,全为假时才是假。

	int a = 10;
	int b = 0;
	if (a || b)
	{ 
   
		printf("hehe\n");
	}

a为真,b为假,只要有一个真结果就是真,此时输出hehe。

逻辑或运算判断出第一个表达式为真后,后面的表达式就不会再计算了
逻辑非(!):
非假即为真,非真即为假,就是指本来值的反值。

	int a = 10;
	if (!a)
	{ 
   
		printf("hehe\n");
	}

a=10为真,!a运算后结果为0,不会打印hehe。
当a = 0时,!a为1,此时打印hehe。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186088.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机发展历史[通俗易懂]

    计算机发展历史[通俗易懂]计算机发展历史电脑的发展历史   电脑的学名叫计算机,电脑是用来做计算的。在古时候,人们最早使用的计算工具可能是手指,英文单词“digit”既有“数字”的意思,又有“手指“的意思。古人用石头打猎,所以还有可能是石头来辅助计算。 缺点:手指和石头太低效了   后来出现了”结绳“记事。 缺点:结绳慢,绳子还有长度限制。   又不知过了多久,许多国家的人开始使用…

    2022年10月19日
    2
  • 使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)

    使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)今天学习使用了HttpClient4.2向服务端发送上传文件的请求,由于服务器端以MultipartFile形式接收,查询资料后决定使用HttpClient4.2实现,以下是实现代码(仅作测试使用):publicvoidtesttaskPost()throwsException{HttpClienthttpclient=newDefaultHttpClien

    2022年7月22日
    18
  • mac. navcat 激活码【2022最新】2022.02.19

    (mac. navcat 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    41
  • Java面试题整理,2021年腾讯Java高级面试题及答案[通俗易懂]

    Java面试题整理,2021年腾讯Java高级面试题及答案[通俗易懂]正文如果你参加过一些大厂面试,肯定会遇到一些开放性的问题:1、写一段程序,让其运行时的表现为触发了5次YoungGC、3次FullGC、然后3次YoungGC;2、如果一个Java进程突然消失了,你会怎么去排查这种问题?3、给了一段Spring加载Bean的代码片段,阐述一下具体的执行流程?是不是看上去很难,是不是和自己准备的“题库”中的问题不一样?不知道从何处下手?如果你有这种感觉,那么说明你的技术还需要继续修炼。面对如此多的技术面试,怎么样才能说自己的技术已经过关了呢?只有

    2022年7月18日
    16
  • git放弃修改&放弃增加文件

    git放弃修改&放弃增加文件

    2022年2月10日
    57
  • intellij idea如何右键新建文件中添加jsp格式的文件【初学者适用】[通俗易懂]

    intellij idea如何右键新建文件中添加jsp格式的文件【初学者适用】[通俗易懂]idea如何右键新建文件中添加jsp格式的文件    有位同学在学习使用intellijidea,在创建web类的project时,新建中找不到jsp格式类型,下面是怂怂总结的解决步骤,希望可以帮助更多诸如小太阳同学,解决相同的问题。&a

    2025年7月26日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号