C语言中a=(0<<2)|(1<<3)是什么意思

 我来答
写在枫叶上的故事
2018-12-04 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.6万
展开全部

"="是赋值运算符,可以将右边的运算结果赋值给左边的变量。"<<"是左移运算符,将数左移一位即相当于扩大2倍。"|"是位或运算符,即按二进制存储数据的位进行或运算。

a=(0<<2)|(1<<3) 中有括号,先运算括号中的表达式,0<<2 结果还是0,1<<3 结果为1*2*2*2=8,而0|8=8。所以结果为:a= 8。

扩展资料

C语言的运算符:

1、算术运算符:* - + / %

2、关系运算符: > < == != >= <=

3、逻辑运算符:! && ||

4、位运算符:<< >> ~ | ^ &

5、赋值运算符:=及扩展赋值运算符

6、条件运算符:?:

7、逗号运算符:,

8、指针运算符:*和&

9、求字节数运算符:sizeof

10、强制类型转换运算符:(类型)

11、分量运算符:. ->

12、下标运算符:[ ]

13、其他:如函数调用运算符:()

参考资料来源——百度百科——运算符

kaixingui2012
推荐于2017-09-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6427万
展开全部
=赋值运算符 将右边的运算结果赋值给左边的变量
<<左移运算符 左移一位,相当于扩大2倍
|位或运算符 按二进制存储数据的位进行或运算,有1则1,全0为0
a=(0<<2)|(1<<3) 中有括号,先运算括号中的表达式
0<<2 结果还是0
1<<3 结果为1*2*2*2=8
0|8=8
所以结果为:a= 8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西沂初布历1U
2010-07-23 · TA获得超过2216个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:88.9万
展开全部
X<<N表示将一个数X的所有二进制位全部左移N位,X>>M表示将一个数X的所有二进制位全部右移M位,由此可知,0<<2还是0,1<<3就是8了,“|"是按位或的运算符,两个相应的二进制位中只要有一个为1,该位的结果就是1。所以最后的a的二进制位是00001000,用十进制数表示a=8.问题解决。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永远DE青春
2010-07-23 · TA获得超过184个赞
知道答主
回答量:57
采纳率:0%
帮助的人:35.8万
展开全部
0 二进制表示 0000 <<2表示向左移动2位右端补0 但还是0
1 二进制表示 0001 <<3表示向左移动3位右端补0 是1000 为 8

|表示按位或操作,1或1的1, 1或0得1, 0或1的1,0或0得0

0000
1000
——
1000
8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Richardljl
2010-07-23 · TA获得超过685个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:331万
展开全部
<<是左移运算符
0<<2表示0的二进制代码,左移两位,还是0
1<<3,表示左移三位,相当于1*2^3=8
然后执行 | 即按位或操作,仍为8,最后输出8

当然这些操作都是在将原十进制数字改成二进制数字后进行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式