文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>右移时应该注意的问题

右移时应该注意的问题

时间:2010-10-17  来源:juxiangwu

package com.kkoolerter.jdk;

public class RightByteShift {

    public static void main(String[] args) {
        /*
         * 注意下面的结果,无论-1右移多少位,它的结果始终是-1。 因为符号扩展在高阶位中引进了更多的1。
         * 什么是符号扩展?答案是:右移时,空出的最高位(最左边) 由原来的最高位内容填充。这被称作“符号扩展”,在进行 右移时用来保持负数的符号。
         */
        System.out.println("-1>>1 = " + (-1 >> 1));
        
        System.out.println(HexByte.toHexString((byte) 2));
    }
}

/**
 * 把一个byte转换成十六进制表示 <br>
 * 注意,右移后的值与0x0f进行按位与操作,目的是将扩展位符号丢弃
 *
 * @author Jenson
 *
 */
class HexByte {
    private static char[] hex = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
            '9', 'A', 'B', 'C', 'D', 'E', 'F' };

    public static String toHexString(byte b) {
        return new StringBuilder("0x").append(hex[(b >> 4) & 0x0f])
                .append(hex[b & 0x0f]).toString();
    }
}
 
相关阅读 更多 +
排行榜 更多 +
幸存者的命运

幸存者的命运

飞行射击 下载
精英战区3d

精英战区3d

飞行射击 下载
货运猎人

货运猎人

飞行射击 下载