9.26学习总结

(1)今日安排
完成部分课后作业
(2)动手动脑
阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。
解答:
原码:十进制数字的绝对值转化为8位(byte类型为8位,int类型则是36位)的二进制数字。如果十进制的数字是正数,则原码首位为0,负数则原码首位为1。
反码:若为正数,反码==原码;
若为负数,最高位保持不变,其他的数值位1变成0,0变成1;
补码:若为正数,反码==原码;
若为负数,把负数的反码+1就得到了补码;
编写代码如下:

 int a=9;
  int b=-9;
  int sum=a+b;
  System.out.println(sum);

易知程序的结果为0。
原码:(00001001)原+(10001001)原=(10010010)原,换算成十进制为-18,与结果不符。
反码:(00001001) 反+ (11110110)反 = (11110111)反,换算成十进制为8,与结果不符。
补码:(00001001)补 + (11110111)补 = (11111111)补 ,换算成十进制为0,与结果符合。
故在java中,数是由补码表示的。

posted @ 2021-09-26 12:17  今天又双叒叕在敲代码  阅读(27)  评论(0编辑  收藏  举报