byte b=(byte)0xf1;
char a[]={'0','1','2','3','4','5','6','7','8','9,'a','b','c','d','e','f'}
System.out.println("     b>>>4=0x"+hex[d>>>4&0x0f]+hex[d&0x0f]);
为什么出来的结果是0xff而不是0x0f,如果是因为移动前变量b已被扩展为int,有符号扩展位,那为什么有了符号扩展位就这样,最好写个流程谢谢!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【flytigerme】截止到2008-07-16 01:51:42的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:10                       每贴平均分数:3                        
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:2                        结贴的总分数:10                       
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:66.67 %               结分的百分比:100.00%                  
    无满意结贴率:50.00 %               无满意结分率:200.00%                  
    楼主加油