c语言中x&(1<<i)是什么意思?

c语言中x&(1<<i)是什么意思?

这个是涉及到运算符的问题。
x&(1<<i) 这个语句用到了按位与运算符和左移运算符,
意思是先把1左移i位,然后把得到的结果再和x进行按位与运算。追问

可是与运算符不是&&吗,这样输入程序不会报错吗

追答

&& 这个是逻辑与, 而&这个是按位与,意思不一样的。

追问

我知道了,谢谢

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中x&(1<<i)是什么意思?
x&(1<<i) 这个语句用到了按位与运算符和左移运算符,意思是先把1左移i位,然后把得到的结果再和x进行按位与运算。

C语言中的if(c&(1<<i))什么意思,这句话无法理解(c是字符型)
而1<<i 只有右数第i位是1, 其他都是0.那么要结果非0, 除非c的第i位也是1.所以 这个就是判断c的第i位是否为1, 如为1, 那么if成立。 否则if不成立。PS:这里说的第i位都是从0计数的。

c语言1<<i 什么意思
C语言中1<<i表示将1的二进制每位想左移动i位,末位补0。左移运算符(<<)是C语言中的一种常见的运算符,一般用法可以通过下面的例子讲解来说明:如:1<<5 由于1的二进制为0000 0001,左移5位就是将每位向左移动5位,末位补0,所以1<<5后结果为0010 0000,转换为十进制就是32。

C语言中1<<i是什么意思?
按位与运算符 ,运算的时候先将两个数转换成2进制,规则是: 0

c语言,这句什么意思?运算符。。 f_b.y&(1<<i))>0
\/\/1<<i可以理解为下面的for循环 for(i=1;i<=512;i=i*2)printf("%d,",i);\/\/【按位与运算符"&",它通常用来将某变量中的某些位清0且同时保留其他位不变。也可以用来获取某变量中的某一位。】f_b.y&(1<<i)是(找出结构体变量f_b内的变量)y值为2的倍数的位,其他位清零;include "...

以下表达式x&&1用在if条件中时,和哪个条件是等价的?
由于c语言认定,非0值为真,0值为假,则x&&1相当于(x&&真),结果要看x值是真是假 I.如果x值是0,则整个表达式为:假&&真=假,假对应x==0 II.如果x值不是0,则整个表达式为:真&&真=真,真对应x!=0 A.x!=0时取值x==0是假,与上述II不符 B.x!=0时取值x==0是假,与上述II不...

C语言中 P2=~(1<<i) 是什么意思? =~ 是什么样的运算 <<是什么运算?
<<是按位左移运算,~是按位取反运算,=是赋值运算。P2=~(1<<i)的意思是把1换成二进制数,然后左移i位,再按位取非,将结果赋给P2,等价于P2=(~(1<<i))。比如i为3。那么P2= ~(1<<i) = ~(1<<3) 。先按1个字节来看,1的二进制为00000001,左移3位得到00001000。取反得到...

在c语言中1<<i与i<<1的区别是什么
i<<1就是把i左移一位,即i乘以2,假如i=5,最后结果就是5*2=10 至于为什么左移一位是乘以2,这是运算器内部机理,说起来就更多了,计算机做乘法运算的时候不是一个个的相加,而是用移位来实现的。>>这个符号是右移,与左移相反,右移是除以2.这里还有一点容易搞错的,就是移位符号的左边是...

C语言中&x[i]什么意思
&是取地址,就是在内存中的位置,就比如 数组的话 &x[0] &x[1] &x[2] 这些量在内存中存储在相邻的一片区域

C语言中temp=1<<i;是什么意思,temp和i定义为整型。我知道<<是移位的意 ...
比如你说的 i=3,temp = 1<<i是多少。首先对于1来说,二进制就是0001,移位后是1000,然后转成10进制就是8了。一般来说,这种移位是为了做与运算的时候判断这一位是否为1。对于你提的后面那一串就是将WGM01,WGM00,COM01,COM00,CS00,CS02这几个位置都置一。这个一般是作为判断位来使用的。

相似回答