类型转换和一些运算符的计算

一、基本数据类型的字节
以10为例:
在这里插入图片描述
int类型的10其实就是在前面补0,补齐4个字节,32个bit位,其他类型也是这样。

二、类型转换

  1. 隐式转换(小变大 前面补0)
public class Test{
    public static void main(String[] args){
       byte a=10; //0000 1010
       int b=a;//0000 0000 0000 0000 0000 0000 0000 1010
       System.out.println(b);
    }
}

输出结果:10

  1. 强制转换
public class Test{
    public static void main(String[] args){
       int a=300; //0000 0000 0000 0000 0000 0001 0010 1100
       //超过了byte的取值范围
       //去掉前面24个bit
       byte b=(byte)a;//0010 1100
       System.out.println(b);
    }
}

输出结果:44

public class Test{
    public static void main(String[] args){
       int a=200; //0000 0000 0000 0000 0000 0000 1100 1000
       byte b=(byte)a;//1100 1000 (第一个是符号位)
       //计算机中,数字的运算和存储都是以补码的形式进行的,所以
       //1100 1000是补码形式
       System.out.println(b);
       //Java运行时会把结果转换成十进制的表现形式
    }
}

输出结果:-56

//
ps:补码-1,按符号位取反就是原码
//
三、其他运算符

  1. 逻辑与(都为true结果才为true)
    这里的&运算符左右都是一些数字
    在这里插入图片描述
  2. 逻辑或(有一个true结果就是true)
    在这里插入图片描述
  3. 左移(把二进制的补码向左移动,低位补0)
    在这里插入图片描述
    这里移出去的那两位0就舍去了
    规律:左移n次就乘以2的n次方
  4. 右移(如果原来是负数就补1,反之补0)
    在这里插入图片描述
    规律:右移n次就除以2的n次方
  5. 无符号右移(和右移差不多,区别是全补0)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值