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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范兵锋 中级黑马   /  2015-8-8 06:03  /  642 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

-6>>2过程
6的二进制源码      00000000 00000000  00000000 00000110
6的二进制反码      11111111 11111111  11111111 11111001
-6的补码              11111111 11111111  11111111 11111010
右移两位             11  11111111 11111111  11111111 111110     10舍弃

计算  11  11111111 11111111  11111111 111110对应的整数
    减一
          11 11111111 11111111  11111111 111101
   取反
          10 00000000 00000000 00000000 000010
所以结果为    -2



但是-6>>2不是相当于 -6 / 4 吗
  -6 / 4的结果是 -1

为什么两者不相等,求大神讲解。。。。。。。。。。。。。。。。。。

9 个回复

正序浏览
这个应该是当结果是小数的时候。负数的右移位运算符是进1(正数是舍掉小数),而除法运算的结果都是舍掉小数。
回复 使用道具 举报

知道,我是说为什么-6>>2 和-6/4的结果不一样
回复 使用道具 举报

。。。。
回复 使用道具 举报
-6/4=-1
-6%4=-2
回复 使用道具 举报
-6/4是-1.5
回复 使用道具 举报
本帖最后由 xiaoshui 于 2015-8-8 10:48 编辑

这是两种运算
回复 使用道具 举报
好吧,我承认,你把我带到 沟里了
回复 使用道具 举报
负数二进制表示是加了补码的
回复 使用道具 举报
自己顶~~~求讲解-------------------------------------------------------------
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马