我是靠谱客的博主 笨笨豌豆,最近开发中收集的这篇文章主要介绍c语言逻辑运算与位运算区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

c语言中,逻辑运算与位运算很容易混淆,但是它们的功能是完全不同的。逻辑运算认为所有的非零的参数都为TRUE,参数0表示false,它们返回1或0.

&&与||和&与|重要的区别是,如果第一个参数求值能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。

深入理解计算机系统第二章P36页,c语言中的逻辑运算答案

#include<stdio.h>

int main()
{
 int a= 0x66;
int b = 0x39;
printf("%x,%x,%x,%x,%x,%x,%x,%x",a&b,a|b,~a|~b,a&!b,a&&b,a||b,!a||!b,a&&~b);
 return 0;

}

依次为ox20,ox7f,oxffffffdf,ox01,0x01,0x00,ox01



逻辑运算包括左移和右移,其中右移又包括逻辑右移和算术右移

逻辑右移与算术右移区别:逻辑右移在左端补k个0,算术右移在左端补k个最高有效位的值

注意是单个移动,而不是作为整体,看下面的例子,每个[]进行移动,而不是[][]两个一起移动,对于无符号数据必须是逻辑的,对于有符号数默认是算术的

x = [01100011][10010101]

x>>4(逻辑右移)   [00000110][00001001]

          算术右移    [00000110][11111001] 



最后

以上就是笨笨豌豆为你收集整理的c语言逻辑运算与位运算区别的全部内容,希望文章能够帮你解决c语言逻辑运算与位运算区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部