C语言中的左移和右移?

C语言中左移<<表示乘以2,右移>>表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一样啊,怎模解释呢??请教高手!

0111右移一位是把最后一位的1去掉,左边补个0,得0011,转换为十进制是3,这是正确的。并不等同于除以2
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-09
移位操作符的两个操作数必须是整型的。整个移位表达式的值的类型也是整型的,而且,左移位操作符与右移位操作符的运算并不对称。本回答被提问者采纳
第2个回答  2020-01-16
左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0,移5和移6没区别
<<后面的数字表示移多少位
第3个回答  2007-12-24
移位只是对int型进行的操作。如果按是int型的计算,结果是正确的 。
第4个回答  2019-07-30
你优先级没注意,<<的优先级比
^
的高,所以应该先算b<<2
,为00011000;
再算与a异或运算就可以了!

c语言中<<和>>是什么意思?
C语言中<< 代表左移运算符,>> 代表右移运算符,位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。<< 代表左移运算符:左移运算符用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃...

c语言中的>>和<<分别是什么意思啊?
C语言中的>>和<<分别是左移运算符和右移运算符,用于整数在二进制形式的移位运算。1、左移运算符(<<)规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。语法格式:需要移位的数字 << 移位的次数,例如: 3 << 2,则是将数字3左移2位。数学意义:在数字...

c语言中的右移和左移有什么区别吗?
右移一位相当于除以2。例:5>>1 5的二进制表示是101,那么右移一位之后是10就是2了,是整除的;左移的话就是在后面补一个零,相当于是乘以二,那么变成了1010,十进制是10。101右移,就是把最后一位拿掉了,是10这个是二进制的,十进是2,5\/2本来是小数,但这里是整数操作的,所以把小数...

c语言中的左调整和右调整是什么意思?
总之,在C中,左移是逻辑\/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左\/右移做快速的乘\/除运算,这样会比循环效率高很多.

c语言中,按位与、按位或、左移、右移有区别么?
1、~:意思是按位取反,类似于非(!)的关系,取它的反面。2、<<: 意思是左移,移动二进制的位。3、& : 意思是按位与,类似于与(&&)的关系,一假为假。4、^:意思是按位异或,通俗地说就是相同为0,不同为1.5、|:意思是按位或,类似于或(||)的关系,一真为真。

<<在C语言中代表什么意思
<< 是逻辑位移运算符,左移。>> 是右移。是按位进行移位的。本题:define user2out (1<<7)是宏定义 ,user2out 等同于 (1<<7)1就是0x01(十六进制),00000001(二进制)左移7位后就是 0x80(十六进制),10000000(二进制)

c语言中位运算的左位移右位移都是什么意思
假设0010左移就是把二进制数向左移动,右边补0,0的二进制全是0,左移之后右边再补0。0010<<2 就是1000 实际是做的*4。1000>>2 计算 0010 实际做的是\/4。位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一...

C语言中的左移和右移?
0111右移一位是把最后一位的1去掉,左边补个0,得0011,转换为十进制是3,这是正确的。并不等同于除以2

关于C语言的左移(<<)和右移(>>)
左移比较简单,右边补0(移几位就补几个0),左边丢掉。右移比较复杂,右移分两种:(1)逻辑右移,左边补0(移几位补几位),右边移出去的丢掉。(2)算术右移,左边补最高位(即原来的最高位是0就补0,是1就补1,因为最高位代表符号,这样可以保证负数不会变成正数),右边丢掉。

c语言左移、右移的规则是什么?
SHR(算数右移):shift logical right SAL(逻辑左移):shift arithmetic left SAR(逻辑右移):shift arithmetic right ROL(循环左移):rotate left ROR(循环右移):rotate right RCL(带进位的循环左移):rotate left through carry RCR(带进位的循环右移):rotate right through carry ...

相似回答