新人,请多指教,有个java小问题: bety a=300,强制类型转换,分析我的做法是否正确?谢谢

byte a = (byte)300;输出结果是多少?

    获取300数据的二进制:

(系统默认int型)00000000    00000000    00000001   00101100

    因为300为正数所以原码,反码,补码都一样,byte为一个字节长,所以做截取操作后得:

                                               00101100

对截取后数据进行原反补的转换的:

                                            符号位                     数值位

               补码                          0                       0101100

               反码                          0                       0101011   

               原码                          0                       1010100

最后运算结果为:84.但是在java程序运行结果为44,我哪里错了???望指教!!!

 1 class DataType{
 2 public static void main(String[]args){
 3            byte a =(byte) 300;
 4       System.out.println(a);
 5       
 6       
 7       
 8 }
 9 
10 }

            

                                

原文地址:https://www.cnblogs.com/ym1027/p/6066339.html