黑马程序员技术交流社区

标题: 强制转换数据溢出后的结果怎么算? [打印本页]

作者: wuyingtong    时间: 2015-4-22 23:09
标题: 强制转换数据溢出后的结果怎么算?
/*
需求:byte b = 300;这个有问题吗?如果有问题如何解决?结果是多少?
分析:
                A:首先使用强制转换
                        byte b = (byte)300;
                B:将300的二进制计算出来
                                00000000 00000000 00000001 00101100
                又因为300是正数,所以原码,反码,补码都是相同的。
                C:因为byte为1个字节,做截取操作
                        00101100   这个是补码
                已知补码,求原码
                        符号位                数值位
                补码        0                  0101100
                反码        0                 0101100
                原码        0               0101100
                结果是44.
*/
class DataDemo{
        public static void main(String[] args){
        byte b = (byte)300;
                System.out.println(b);
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2