156转换为byte时为什么会变成100的解释

156 =0 10011100B(第一个零位符号位,表示正,当然int型数值位前面还有N个0,略去)
由于1byte为8bit
所以转换为byte,符号位被丢弃(N个0也被丢弃),
结果为1 0011100B(此时,第一位符号位为1,为负),
由于负数按补码存储,所以转换为byte之后的真值为1 1100100(由补码求原码,按位取反末位加1),即-100

原文地址:https://www.cnblogs.com/Sabre/p/1580163.html