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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 646245771 中级黑马   /  2014-4-20 15:54  /  1237 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 646245771 于 2014-4-21 11:04 编辑

看了毕老师的视频,然后有有一点不明白。求大神指教。

例如:3<<2 表示3的二进制位像左移动两位  也就是
0000 0000 0000 0000 0000 0000 0000 0011向左移动2位结果是
0000 0000 0000 0000 0000 0000 0000 1100=12
同理
3>>2 表示3的二进制位向右移动两位,也就是
0000 0000 0000 0000 0000 0000 0000 0000=0

那么我的问题是  -3<<2和 -3>>2这个怎么算的。求负数的详细讲解。



评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
本帖最后由 skill20 于 2014-4-20 16:21 编辑

  0000 0000 0000 0000 0000 0000 0000 0011 ----3

  1111 1111 1111 1111 1111 1111 1111 1100 ----3取反
+0000 0000 0000 0000 0000 0000 0000 0001 ----+1
————————————————————————
  1111 1111 1111 1111 1111 1111 1111 1101 ----- -3

   1111 1111 1111 1111 1111 1111 1111 1111  >>2     -3右移 2位,负数最高位是 1 ,右移后最高位补 1.

    1111 1111 1111 1111 1111 1111 1111 0100  << 2   -3左移 2位,负数最高位是 1 ,左移后最高位补 1.
回复 使用道具 举报
-3 = 3 的二进制取反 + 1  
0000 0000 0000 0000 0000 0000 0000 0011  =3
1111 1111 1111 1111 1111 1111 1111 1100  取反
0000 0000 0000 0000 0000 0000 0000 0001 +1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1111 1111 1111 1111 1111 1111 1111 1101 = -3
-3<<2的结果:
1111 1111 1111 1111 1111 1111 1111 0100   是一个负数
转换成十进制   一样取反+1
0000 0000 0000 0000 0000 0000 0000 1011 取反
0000 0000 0000 0000 0000 0000 0000 0001 +1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0000 0000 0000 0000 0000 0000 0000  1100   =  -12(!!!!)

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 很给力!

查看全部评分

回复 使用道具 举报
skill20 发表于 2014-4-20 16:20
0000 0000 0000 0000 0000 0000 0000 0011 ----3

  1111 1111 1111 1111 1111 1111 1111 1100 ----3取反 ...

谢谢,我脑袋突然转过来这个弯了:)
回复 使用道具 举报
悠然丶 发表于 2014-4-20 16:24
-3 = 3 的二进制取反 + 1  
0000 0000 0000 0000 0000 0000 0000 0011  =3
1111 1111 1111 1111 1111 1111  ...

谢谢,我脑袋突然转过来这个弯了:)   受教了
回复 使用道具 举报
646245771 发表于 2014-4-20 16:32
谢谢,我脑袋突然转过来这个弯了   受教了

不客气,让我也加深了理解,好多快忘记了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马