永发信息网

为什么int类型的-129转换成byte类型的会变成127?

答案:2  悬赏:40  手机版
解决时间 2021-01-14 19:59
  • 提问者网友:你独家记忆
  • 2021-01-13 20:31
为什么int类型的-129转换成byte类型的会变成127?
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-01-13 21:07
1. int类型一般是4个字节,一个字节有8位,这样int型数据二进制的完整形式有32位,而byte表示一个字节,于是byte类型数据二进制的完整形式有8位。
2. 二进制数据在计算机内是以二进制存储的,要注意一点,计算机在存储某个数据时,是存储的数据的补码,说明一下补码与原码关系,正数补码与原码相同,负数补码是原码减1后取反。
3. 根据上面阐述,129的原码是00000000 00000000 00000000 10000001 ,负数最高位取1,那么-129便是10000000 00000000 00000000 10000001 ,补码计算:减1为10000000 00000000 00000000 10000000 ,再取反为11111111 11111111 11111111 01111111(最高位是符号位,不参与取反),现在转换为byte,只有8位,于是只能保留低8位,前面24位丢去,得到01111111,这就对应着十进制的127.参考资料:自己的知识储备
全部回答
  • 1楼网友:轻雾山林
  • 2021-01-13 22:17
“无双少城主”的回答可以给个最佳。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯