美文网首页
java的int和byte类型的转换

java的int和byte类型的转换

作者: 巨狮座 | 来源:发表于2017-07-17 15:53 被阅读0次

    例子一:

    ① byte a=1; //通过

    当字面整数常量保存到byte、short、long 或char类型的变量中时,Jdk会执行自动类型转换,概括说就是整型值赋值的时候可以自动转换

    ② byte b=a+1; //编译报错

    1默认是 int 类型,而 a 和 b是 byte类型,在运算的时候 a会自动转换为 int 类型与1相加,而结果会变成 int 类型,这个时候大类型就不能自动转化成小类型,必须显式强制转换  byte b = (byte) (a+1)


    例子二:

    int x = 266;                                                        int x = 206;   

    b =(byte)x ;                                                        b =(byte)x ;

    System.out.print(b) //输出 10                            System.out.print(b) //输出 -50

    原因:

    int 是32位 4个字节 8位1字节

    int转换成byte 前面的3个字节 即24位 直接砍掉 就剩最后一位

    所以 266 ——(00000000)(00000000)(00000001)(00001010)= 0001010 = 10

            206 ——(00000000)(00000000)(00000001)(11001110)= 11001110= -50

    最高位是 0 表示是正数,如果是1表示负数,要先按位取反再加1


    相关文章

      网友评论

          本文标题:java的int和byte类型的转换

          本文链接:https://www.haomeiwen.com/subject/zctqkxtx.html