直接看以下的运算:
public class TestConvert{ public static void main(String []args){ byte b1=67; byte b2=89; byte b=(byte)(b1+b2);//系统强制转换成int型运算。须要强制转换符 System.out.println(b); } }
分析:byte类型的存储空间为1字节,范围为-128~127;int类型的存储空间为4字节;
byte b1= 67=01000011;//符号位为正
byte b2= 89=01011001;//符号位为正
01000011
+ 01011001
----------------------------------
10011100(超出表示范围上限。符号位为1,表示负数)
对10011100取反01100011并加1->01100100
即-(64+32+4)=-100
这里主要涉及到十进制到二进制的转换,补码,反码!
这是个人的思路,假设有错误的地方还请雅正!
时间: 2024-09-29 15:51:44