C语言中的运算符的&与&& 和 |与||有什么区别,用在什么地方

一个和两个相同的运算符有什么区别... 一个和两个相同的运算符有什么区别 展开
 我来答
yesyes科
2020-04-07 · TA获得超过2.6万个赞
知道答主
回答量:608
采纳率:0%
帮助的人:10.1万
展开全部

 &和|是位运算。&&和||表示逻辑关系,&&和||表达式最终的值只可能是真(1)或者假(0),而位运算表达式的值不限于0和1 两者在特定情况下的效果是相同的。操作方法如下:

1、首先这里用到字符的ascii码,A的ASCII码为65,之后用scanf函数进行输入。if设置为嵌套语句,判断输入的字符是不是在A-Z之间,系统比较的是二者的ASCII码,来输入大写字母G。

2、还是字母大小写的转换,利用逻辑运算符对第一个程序进行改写。使用逻辑与&&运算符之后,代码更易于理解,而且计算机处理的时候更容易。

3、将letter = letter - ‘A' = 'a'改为了letter  += 'a' - 'A',代码可读性提高,开始运行,输入一个【,可以看到,非字母字符的输出达到了解决。

4、接下来要用五个新函数去完成这个程序,isalpha(),这个函数用来测试字符是否为字母,是返回true,isupper()和islower()用来测试字母是大写还是小写,最后两个函数toupper和tolower分别是用来将字符转换为大写和小写。

5、运行输入G,就完成了。

ahcc08
2014-07-12 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51941
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别
在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^)。第一组是逻辑运算符,它的操作数是布尔型,而第二组则是位运算符,其操作数是位序列。在布尔型操作数中,只有两个数值,0或1。C语言规定,在逻辑运算中,所有的非0数值都看做1处理。而位序列则可以是有无符号的字符型,整型,长短整型等。在位运算中,是相应的位之间进行逻辑运算。因此,从逻辑上讲,位运算过程包含多个逻辑运算过程。通常,位运算操作数选择无符号型数据。
1 应用实例
#include
int main(int argc, char *argvs[])
{
unsigned int a = 0x11;
unsigned int b = 0x00;
unsigned short s = 0x10;
unsigned char c = 0x01;

if(a&&b) printf(“True: a && b is %d \n”, a&&b);
else printf(“False: a && b is %d \n”, a&&b);

if(a&&s) printf(“True: a && s is %d \n”, a&&s);
else printf(“False: a && s is %d \n”, a&&s);

if(a&&c) printf(“True: a && c is %d \n”, a&&c);
else printf(“False: a && c is %d \n”, a&&c);

if(s&&c) printf(“True: s && c is %d \n”, s&&c);
else printf(“False: s && c is %d \n”, s&&c);

printf(“a & b is %x \n”, a&b);
printf(“a & s is %x \n”, a&s);
printf(“a & c is %x \n”, a&c);
printf(“s & c is %x \n”, s&c);
printf(“a & 0x110 is %x \n”, a&0x110);

return 0;
}

执行结果是:
False: a && b is 0
True: a && s is 1
True: a && c is 1
True: s && c is 1
a & b is 0
a & s is 10
a & c is 1
s & c is 0
a & 0x110 is 10
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
竹冽岩青
推荐于2017-09-30 · 超过16用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:34.3万
展开全部
&是 按位与 比如a=0xf0(11110000b),b=0xcc(11001100),那么a&b=0xc0(11000000b),意思就是每组二进制位响应地做与运算
同理 | 是按位取或,a|b=0xfc(11111100b)意思就是每组二进制位相应地做或运算。
&&和||就是判断逻辑的与和或,比如(a==b)&&(c==d)意思就是,a等于b,并且c等于d时表达式为真,逻辑上的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shine1991
科技发烧友

2014-07-12 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

&和|是位运算;&&和||表示逻辑关系

&&和||表达式最终的值只可能是真(1)或者假(0)

而位运算表达式的值不限于0和1


两者在特定情况下的效果是相同的,但是不建议这么做,会让人产生困惑

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2014-07-12 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6446万
展开全部
& |是位操作,一般操作在某个变量上
&& || 是逻辑判断,并且和或者的意思,一般操作在表达式逻辑上的,如:
if ( a&& b ) 表示 a为真且b为真

c= a&b ; //进行运算,得到一个新的结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式