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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 竹林雅轩 中级黑马   /  2015-9-28 22:37  /  263 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个程序打印的结果我知道我也能算出来,
                byte b2 = (byte)130;
                System.out.println(b2);
相关的过程是这样的:
130默认是int类型的十进制数据。

                第一步:十进制的130转换成二进制数据。
                        128 64 32 16 8 4 2 1
                        1   0  0  0  0 0 1 0
                第二步:130在内存中的表示形式,你做了截取
                        00000000 00000000 00000000 10000010
                       
                        截取后的结果是:
                                10000010
                第三步:二进制数据是10000010
                        通过观察,我们发现这是一个负数。

                        原码:1 0000010
                        反码:1 1111101
                        补码:1 1111110
                       
                        最终的结果是:
                                1 1111110
教学课程中刘意老师说10000010这个是原代码,但是课上老师说这个是补码;结果都一样,我糊涂了,怎么回事?请求高手指教!!

0 个回复

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