文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>byte或short类型在左移时应注意的问题

byte或short类型在左移时应注意的问题

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

package com.kkoolerter.jdk;

/**
 * 位移(ByteShift)
 * @author Jenson
 *
 */
public class ByteShift {

    public static void main(String[] args) {
        byte a = 64,b;
        int i = a << 2;
        b = (byte)(a<<2);
        
        System.out.println("a的原始值:a="+a);
        System.out.println("i="+i+",b="+b);
       
        /*
         *这个程序段说明了Java在对shot的byte类型进行位移时,将会产生出人
         *意料的结果。因为对一个表达式求值 时,byte和short将自动 提升为int
         *类型,表达式结果也是一个int类型。也就是byte或short值向左移位的
         *结果是一个int,但移到左边的位超过了第31位将丢失。此外,负的byte
         *或short值在提升为int时,其符号将扩展,高阶位将用1来填充。为此
         *在一个byte或short上执行一个左移则会丢弃int结果的最高阶位。例如,
         *如果左移一个byte值,该值首先被提升为int,然后再在int上执行一个
         *左移。此时,如果需要的一个移位后的byte值,则必须丢弃结果中的前3
         *个字节,方法是将结果强制转换为byte类型。
         */
    }
}
 
相关阅读 更多 +
排行榜 更多 +
幸存者的命运

幸存者的命运

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

精英战区3d

飞行射击 下载
货运猎人

货运猎人

飞行射击 下载