因为你使用了ByteArray,这个数组流每个单位为字节,就是8位,也就是8个2进制位,八个2进制位一共可以表示256个数字,第一位用来表示正负,0为正,1为负,8位全部为0就表示0,符号位为1,其他为0就表示-128,所以该数字的范围就是-128到127,加上0刚刚256个数字。
这里就很明显了,最大的正数只能到127,你超出了范围,于是产生了溢出,溢出的时候会循环计数,也就是说,如果你的数字是128那么实际上就是溢出了一个,就成了-128,如果溢出了两个,例如数字129就是-127,当你溢出了73个的时候,那么数字就是-128+73-1=-56,所以明显你输出的就是-56 |