1. 算术右移一位是什么意思
看你的分类是在c和c++的,那应该是说基于二进制的数值运算,也就是位运算,举个例子,把一个十进制的数字,比如把4算术右移一位,这样相当于除2,结果等于2,。具体的分析请网络位运算,链接是http://ke..com/view/379209.htm?fr=aladdin。
2. 为什么右移两位相当于除以四啊
首先,10010110右移1位怎么会是11001011?应该是01001011才对(前面补0)右移接近于除以2,,其原理也很简单:2进制转换为10进制,是数字*2^加权如10010110=1*2^7+0*2^6+0*2^5+1*2^4+0*2^3+1*2^2+1*2^1+0*2^0右移1位以后为1001011=1*2^6+0*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0相当于所有的加权都-1,则相当于除以2补充,你那种最高位保留的,最高位是作为符号位的,所以保留,实际数值是后面的7位,如10010110,则右移后为10001011,也是要补个0的
3. 1111100算术右移2位11111111,相当于除四。相当于除四是什么意思
应该是“相当于除以4”。“以”字是很重要的。
1111100/4=11111
这个问题里有好多错……右移的话前面补的是0吧。
4. java右移n位,相当于除于2的n次方
System.out.println(Integer.toBinaryString(60));//111100
System.out.println(60 >> 4);//000011 3
确实是3
5. 如果使用右移运算符移动1位,相当于除以2的话,那么,-10>>2,应该相当于-10除以4,可
所提的问题的回答正确。
右移1位相当于除以2,这个只有正数适用,而负数不适用。
右移运算符,移位运算符的一种:程序设计中,位操作运算符的一种。在c++中,移位运算符组成的表达式也属于算术表达式,其值为算术值。
右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。
6. 在c语言中的0xfe向右移动6位是多少
右移取决于变量的类型
如果 变量是char 有符号 一字节 那么0xfe右移 左边要填1, 也就是右移6位结果是0xff
如果是无符号, 或者是超过一字节的有符号,那么左边填0
右移6位结果为 0x03
7. C语言中的右移一位是不是应该除以2
右移一位相当于除以2。
例:5>>1
5的二进制表示是101,那么右移一位之后是10就是2了,是整除的;左移的话就是在后面补一个零,相当于是乘以二,那么变成了1010,十进制是10。
101右移,就是把最后一位拿掉了,是10这个是二进制的,十进是2,5/2本来是小数,但这里是整数操作的,所以把小数部分去掉了。
(7)数据右移6位相当于除以多少扩展阅读
C语言中的左移
1、左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如:
inti=1;
i=i<<2;//把i里的值左移2位。
2、补符号位,就是一个signedchara=0xff;
a=a>>1;/*它仍是0xff,补了符号位。最高位是符号位=1,右移后符号位保持不变*/;
a=0x80;
a=a>>1;/*变成了0xc0*/
a=0x1f;
a=a>>1;/*变成了0x0f,因为它开始的符号位就是0*/。
8. 请问C语言高手些 把11000000分别右移(0~7位)之后分别各是多少(二进制数形式) 再把每一次移位之后的
每次右移都是高位补0,最低位丢弃,比如右移1位,最低位的0丢弃,最高补0,变为01100000.
右移0位11000000
右移1位01100000
右移2位00110000
右移3位00011000
右移4位00001100
右移5位00000110
右移6位00000011
右移7位00000001
其实右移一次也相当于除以2,
9. 为什么说x的值被右移了一位,“相当于除以2”
这是二进制计数规则
二进制1000是十进制8
二进制100是十进制4
二进制10是十进制2
10. 在位运算中,操作数每右移一位,其结果相当于( )
根据右移运算的原理,右移一位相当于操作数缩小为原来的1/2,故本题选B)。