C语言中a=(0<<2)|(1<<3)是什么意思
10个回答
展开全部
"="是赋值运算符,可以将右边的运算结果赋值给左边的变量。"<<"是左移运算符,将数左移一位即相当于扩大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、其他:如函数调用运算符:()
参考资料来源——百度百科——运算符
展开全部
=赋值运算符 将右边的运算结果赋值给左边的变量
<<左移运算符 左移一位,相当于扩大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倍
|位或运算符 按二进制存储数据的位进行或运算,有1则1,全0为0
a=(0<<2)|(1<<3) 中有括号,先运算括号中的表达式
0<<2 结果还是0
1<<3 结果为1*2*2*2=8
0|8=8
所以结果为:a= 8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
X<<N表示将一个数X的所有二进制位全部左移N位,X>>M表示将一个数X的所有二进制位全部右移M位,由此可知,0<<2还是0,1<<3就是8了,“|"是按位或的运算符,两个相应的二进制位中只要有一个为1,该位的结果就是1。所以最后的a的二进制位是00001000,用十进制数表示a=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
1 二进制表示 0001 <<3表示向左移动3位右端补0 是1000 为 8
|表示按位或操作,1或1的1, 1或0得1, 0或1的1,0或0得0
0000
1000
——
1000
8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<<是左移运算符
0<<2表示0的二进制代码,左移两位,还是0
1<<3,表示左移三位,相当于1*2^3=8
然后执行 | 即按位或操作,仍为8,最后输出8
当然这些操作都是在将原十进制数字改成二进制数字后进行的。
0<<2表示0的二进制代码,左移两位,还是0
1<<3,表示左移三位,相当于1*2^3=8
然后执行 | 即按位或操作,仍为8,最后输出8
当然这些操作都是在将原十进制数字改成二进制数字后进行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询