vs 中关于C语言操作符的一些基本问题 希望解答! 请问 ^ << >> ~ && || 这六个符号是什么意思?

我在书上看到一个例子0111<<2 = 1100 根据左移位不是应该是 11100吗,但是又没有11100这种东西。。由于C语言下学期才上 但下学期课程较重所以想先自学下 天然呆勿喷 对于任何解答都万分感谢!!~

我帮你做个清晰解释吧,首先是 ^ 他是个位异或,也就是位操作符。需要两个整数型操作数,在每个位位置上 如第三位0和1,取1。”对应的位只有1个为1,则操作结果中该位为1,否则为0“。
11001010101
10101010101
而“|”是位或,也需要两个整形操作数。和位异或不同的是,对应的位有一个或者两个都为1,则操作数结果中该位为1;
<< >>这两个都是位操作符。这两种操作符将其左操作数的各个位向左(<<)向右(>>)移动若干个位数,比如:移动到第三位 bits>>3;可以产生新的值,丢弃移出的位。
100101010;
~这个就是位求反啦。就是将操作数的每一个二进制位求反的操作符。比如:
unsigned int bits=0227 相对应的二进制:10010111;
bits=~bits = 01101000;
&& ||这两个就是逻辑操作符啦,使用在算术或指针类型的操作数。&&这个是逻辑与 。
逻辑操作将其操作数视为条件表达式。逻辑与操作符对两个操作数都为ture的时候才ture。而“
||"逻辑或呢,两个操作数之一位ture就为ture。
希望能帮到你=-=。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-21
那题目的意思应该是在四位二进制的情况下,也就是说它的最左边的那一位已经是最高位的,移出去的就只能丢弃。一般写代码的时候,都会知道某个变量占几个字节的大小,所以它移位的结果就会确定追问

谢谢啦!我再去翻翻书。。

第2个回答  2012-04-21
书上的例子的前提是这个变量只4位宽,前面被移出去了。
^ << >> ~ && ||,任何C的书都有详解,仔细找找追问

恩谢谢! 我再去看看 ~

相似回答