A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王德升 于 2019-8-5 08:55 编辑

请解释,为什么结果是-56 ?

答:
1. byte是占一个字节8位,取值范围是[-128,127],因为b+=100,相当于b=b+100; b=200,超出byte的取值范围。
2. 200的二进制是:00000000 00000000 00000000 11001000
3. 计算存在形式都是以补码形式存在,取200的后8位作为运算(方便计算,前面的舍弃),因为
11001000原码(要得到补码需要取反+1),
00110111 反码,
00111000 补码,最高位是符号位(前面24位都是1,1代表负数,0代表正数),
10011100的补码算出数为:32+16+8=56,加上最高的符号位是1,所以是-56.


3.png (6.48 KB, 下载次数: 4)

3.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马