vs 中关于C语言操作符的一些基本问题 希望解答! 请问 ^ << >> ~ && || 这六个符号是什么意思?
我在书上看到一个例子0111<<2=1100根据左移位不是应该是11100吗,但是又没有11100这种东西。。由于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。
希望能帮到你=-=。
11001010101
10101010101
而“|”是位或,也需要两个整形操作数。和位异或不同的是,对应的位有一个或者两个都为1,则操作数结果中该位为1;
<< >>这两个都是位操作符。这两种操作符将其左操作数的各个位向左(<<)向右(>>)移动若干个位数,比如:移动到第三位 bits>>3;可以产生新的值,丢弃移出的位。
100101010;
~这个就是位求反啦。就是将操作数的每一个二进制位求反的操作符。比如:
unsigned int bits=0227 相对应的二进制:10010111;
bits=~bits = 01101000;
&& ||这两个就是逻辑操作符啦,使用在算术或指针类型的操作数。&&这个是逻辑与 。
逻辑操作将其操作数视为条件表达式。逻辑与操作符对两个操作数都为ture的时候才ture。而“
||"逻辑或呢,两个操作数之一位ture就为ture。
希望能帮到你=-=。
展开全部
那题目的意思应该是在四位二进制的情况下,也就是说它的最左边的那一位已经是最高位的,移出去的就只能丢弃。一般写代码的时候,都会知道某个变量占几个字节的大小,所以它移位的结果就会确定
追问
谢谢啦!我再去翻翻书。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
书上的例子的前提是这个变量只4位宽,前面被移出去了。
^ << >> ~ && ||,任何C的书都有详解,仔细找找
^ << >> ~ && ||,任何C的书都有详解,仔细找找
追问
恩谢谢! 我再去看看 ~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询