开学第二周java作业暨动手动脑p3

源码,反码,补码的简单介绍:

原码 

在Java中,对于整数而言,其原码格式为最高位为符号位,该位上1表示负数而0表示正数,剩余位数为该数字的二进制表示。在这里我们用int型的整数5及-5看下例子:
5的原码:00000000 00000000 00000000 00000101
-5的原码:10000000 00000000 00000000 00000101
因此,对于原码来说,绝对值相等的正数和负数只有符号位即首位不同。

反码

正数的原码即为其反码,对于负数而言只需要将原码除符号位以外的位数取反(如果为0改为1,如果为1改为0),便得到了当前负数的反码。
数字5举例如下:
5的反码:00000000 00000000 00000000 00000101
-5的反码:11111111 11111111 11111111 11111010

补码

正数的原码即为其补码,负数的补码是负数的反码加1。
5的补码:00000000 00000000 00000000 00000101
-5的补码:11111111 11111111 11111111 11111011

编写了一个十分简单的实例:

源码为:

package first;
public class two {
public static void main(String[] args) {
int i = 5;
int j = -5;
System.out.println(Integer.toBinaryString(i));
System.out.println(Integer.toBinaryString(j));
}
}

运行结果为:

输出的为5和-5的补码,可以见到,5的补码还是其本身,而-5的补码变为了其反码加一之后的结果。

原文地址:https://www.cnblogs.com/studya/p/11553345.html