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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Shimano 中级黑马   /  2013-12-7 11:46  /  1719 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Shimano 于 2013-12-7 11:52 编辑
  1. public class JinZhiZhuanHuan
  2. {
  3.        public static void main(String[] args)
  4.        {
  5.                int num = 60;
  6.                //int num = -123456;
  7.                toHex(num);

  8.         }

  9.         public static void toHex(int num)
  10.         {
  11.                StringBuffer sb = new StringBuffer();
  12.                for(int x=0; x<8; x++)
  13.                {
  14.                      int temp = num & 15;
  15.                      if(temp>9)
  16.                      //System.out.println((char)(temp-10+’A’));
  17.                      sb.append((char)(temp-10+'A'));
  18.                 else
  19.                      //Syetem.out.println(temp);
  20.                      sb.append(temp);
  21.                      num = num >>> 4;
  22.                      //num = num >>4;//运行结果与无符号右移运算符一样为:FFFE1DC0
  23.                 }        
  24.                System.out.println(sb.reverse());
  25.          }

  26. }
复制代码
       /*          用(>>>)或(>>)
                当int num = 60;时,运行结果是:0000003C
                当int num = -123456;时,运行结果是:FFFE1DC0
               
        */
        /*
                这是十进制转换十六进制的相关代码,有点不懂无符号右移在此处的用法,
        既然,for循环中用x=0; x<8;规定了循环的次数,也就限定了右移的次数,
        那么不管这个数是正数还是负数,右移后最高位补0或者1都不会影响计算的。
        也就是说,即便是一个负数,右移后最高位补1,当进行了8次右移后,循环结束,
        也不影响temp & 15 这个运算。
                并且,我把无符号右移运算符(>>>)改为右移运算符(>>),运行结果一样正确,
        在这我想请教一下,关于(>>>)和(>>)的用法,关键是此处temp & 15 的具体体现,
        */

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

1 个回复

倒序浏览
1. >>:表示最高位补什么由原有数据的最高位值而定,如果最高位为0,右移后用0补空位;如果最高位为1,右移后用1补空位。
2.>>>:表示无论最高位什么,右移后用0补空位。
3.用>>>是因为 如果是正数 那么和>>效果一样,如果遇到负数,那么就把原有数据移完,最终移到0,结束。如果用>>,碰到负数,那么最高位永远是1,永远移不完,运行程序的时候会提示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1。
4.楼主碰到这种情况,可能是写完程序忘了保存?然后直接java了?
5.详情请看毕老师的视频第二天中的 位移运算符。{:soso_e113:}

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马