A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima01 中级黑马   /  2013-4-1 22:54  /  1331 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 itheima01 于 2013-4-3 22:46 编辑

大大们,
-5》2           0000 0101
         1111 1010+1=1011》2=1111 1110
                  1111 1110等于几啊 -5/4=-1 怎么得到的。。
-5《2           0000 0101
                   1111 1010+1=1011《2=1110 1100等于几啊 -12?,-5*4=-20对不
正数左右移位相当于乘除2的次方,那负数的左右位移还相当于乘除2的次方,对不??
正数的取反加一移位,再取反得到值 就是负数位移结果。

         1111 1010+1=1011》2=1111 1110取反得到1000 0001=-1

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

6 个回复

倒序浏览
1111 1110算到这里之后负数取反加1  ,最高位任然是1 最后就是 1000 0001 所以最后是-1
1111 1011 <<2 = ( 取反后+1)=1110 1100最后就是-20
可以乘除2的次方,但是不是很精准.

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
-5的二进制为:1111 1011
      右移两位:1111 1110  结果是-2

左移同样道理:1110 1100  结果是-20

至于乘2除2这个不知道结果为什么不一样。。。
回复 使用道具 举报
这是正常的,你想一下,我们在取反之后是不是做了一个+1动作,故而得到的结果不精确,我想只能是这样的道理了。
回复 使用道具 举报

-5》2           0000 0101
         1111 1010+1=1011》2=1111 1110
                  1111 1110等于几啊
    1111 1110  ---->这是负数的二进制表现形式,对应的正数为
— 0000  0001------> -1操作
-------------------
     1111  1101 ------>取反
     0000  0010 =2
所以,1111  1110 =-2


-5/4=-1 怎么得到的。。
取模运算 (%) 规律:
1.左边绝对值小于右边,模取左边
2.模的正负值取决于左边   这个记住就行了,跟数学规律一样没必要深究


-5《2           0000 0101
         1111 1010+1=1011《2=1110 1100等于几啊 -12?
       -5<<2      
   0000 0101 ---->对应的正数
   1111 1010------>取反
+0000 0001------->+1操作
---------------
  1111 1011-------->-5的表现形式
  1111 1110--------->右移2位
---------------------------------------------
   1111 1110 ------->很明显是负数二进制表现形式    -5<<2 的结果
-  0000 0001-------->-1操作
---------------------------
   1111 1101-------->-1后的结果取反得到结果 0000 0010 =2
所以 -5<<2  的结果 为-2

正数左右移位相当于乘除2的次方,那负数的左右位移还相当于乘除2的次方,对不??   好像没有这么一说,位运算最好用>>>,对于负数而言,最高位是1,>>最高位是1补1,是0补0,>>>最高位不管是0还是1都补0,如果是负数,用>>那么无论你怎么移也移不完



评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
谢谢热心朋友。共同努力。一起进步
回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马