请问C语言的这条怎样表达解释 a | = 0x01 << i
2个回答
展开全部
a = a | (0x01<<i);
其中先给你解释一下运算符:“<<”代表左移运算符;结合方向为从左到右,作用是把一个整型数的所有位向左移动指定的位数,移动到左边界之外的多余二进制位会被丢弃,并从右边界移入0。(http://baike.baidu.com/link?url=980HNPFkxneuqbuSXQ2LfsJajsJOcWP9y8XalLLDwroMZXDDuN5qJBaTJLyomS4G)
|:逻辑或(http://baike.baidu.com/link?url=Hw7qrr68O93rFg36jKdkoZL-FhhwqF3D5Q5uvDuvij_9zyUdEJarjB6uRkbBn6f4#7)
然后来看0x,这个是16进制数。但是我们做左移都要用二进制的。所以化为二进制0000 0001也就是向左移i位。
然后来看|,这个也是在二进制下完成的。就是两个数位只要有1就出1。
然后就是做运算了。
其中先给你解释一下运算符:“<<”代表左移运算符;结合方向为从左到右,作用是把一个整型数的所有位向左移动指定的位数,移动到左边界之外的多余二进制位会被丢弃,并从右边界移入0。(http://baike.baidu.com/link?url=980HNPFkxneuqbuSXQ2LfsJajsJOcWP9y8XalLLDwroMZXDDuN5qJBaTJLyomS4G)
|:逻辑或(http://baike.baidu.com/link?url=Hw7qrr68O93rFg36jKdkoZL-FhhwqF3D5Q5uvDuvij_9zyUdEJarjB6uRkbBn6f4#7)
然后来看0x,这个是16进制数。但是我们做左移都要用二进制的。所以化为二进制0000 0001也就是向左移i位。
然后来看|,这个也是在二进制下完成的。就是两个数位只要有1就出1。
然后就是做运算了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询