java中shor类型转byte类型具体二进制算法?

short num = -126;
        byte num2=(byte)num;
        System.out.println(num2);

这是我尝试的代码,我的计算是-126 Short类型的二进制是1000 0000 0111 1110,其算法应该是只取后面8位0111 1110第一位是字符位得出来应该是126呀,为什么还是负的

short 2个字节   byte 1个字节    直接强转会问题

要8位8位的取,然后与运算,&0xff

这篇博文有说,可以看看

https://blog.csdn.net/weixin_38820375/article/details/88556771