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

如题所述

"="是赋值运算符,可以将右边的运算结果赋值给左边的变量。"<<"是左移运算符,将数左移一位即相当于扩大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、其他:如函数调用运算符:()

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-06
=赋值运算符 将右边的运算结果赋值给左边的变量
<<左移运算符 左移一位,相当于扩大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
第2个回答  2010-07-23
X<<N表示将一个数X的所有二进制位全部左移N位,X>>M表示将一个数X的所有二进制位全部右移M位,由此可知,0<<2还是0,1<<3就是8了,“|"是按位或的运算符,两个相应的二进制位中只要有一个为1,该位的结果就是1。所以最后的a的二进制位是00001000,用十进制数表示a=8.问题解决。
第3个回答  2010-07-23
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
第4个回答  2010-07-23
<<是左移运算符
0<<2表示0的二进制代码,左移两位,还是0
1<<3,表示左移三位,相当于1*2^3=8
然后执行 | 即按位或操作,仍为8,最后输出8

当然这些操作都是在将原十进制数字改成二进制数字后进行的。