Java数据类型练习

/*
        byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少?
        练习: byte b = 300;

*/
class DataType6{
    public static void main(String[] args){
        //因为byte的范围是:-128到127.
        //130不在此范围内,所以报错。
        //byte b = 130;


        //可以使用强制类型转换
        byte b = (byte)130;

        //结果是多少?
        System.out.println(b);
    }
}
/*
    分析:
        我们要想知道结果是什么,应该知道计算机如何计算
        计算机中的计算是以补码的形式进行的
        所以需要该数的补码,先计算二进制

        A:130的二进制是:
            00000000 00000000 000000000 10000010
            这是130的原码,反码和补码
        B:做截取操作,截成byte类型
            10000010
            这个结果是补码。
        C:已知补码求原码。
                   符号位       数值位
            补码:    1         0000010
            反码:    1         0000001
            原码:    1         1111110

        所以130是127
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值