本文为大家解析了java源代码补充码反码的关系,以供参考,具体内容如下
源代码:将所有数字转换为二进制格式,无论源数据是十进制还是十六进制
反码:将原始代码的二进制文件全部颠倒,0变为1,1变为0
补数:在负数的反码上加1,即为负数的补数
示例1 :
十进制整数-5、-5的源代码101、-5的反码1,010、-5的补充代码1,011为,
因此,-5的反码为-2,-5的补码为-3,其中前面的' 1,'表示正数
示例2 :
十六进制-ff9B
原码11111111111110011011
反码000000000000000110010010进制100
补数000000000000000110010010进制101
本来正确的操作流程是将十六进制ff9B变换为二进制,直接进行逆编码,计算补数是温度数据
代码验证:
package comtest.example.admin.znum;
//*
* createdbywrson 2019/6/5,16:25
* projectName: Testz
* package name : comtest.example.admin.znum
*输入真值(整数),求出原始代码、反代码、补充代码
*/
import java.util.Scanner;
公共类测试{
publicstaticvoidmain (string [ ] args ) {
system.out.println (true value-- original code );
system.out.println (pleaseenteraninteger! ' );
sannersc=newscanner(system.in;
int value=sc.nextInt (;
stringbuilder syuan=new stringbuilder (;
if (值0 ) {
stringb value=integer.tobinarystring (value; //将整数转换为字符串类型的二进制
int n=Bvalue.length (;//二进制数字的个数n
Syuan.append('0,';
Syuan.append(bvalue;
system.out.println (original code ' syuan ); //源代码
system.out.println (complement code ' syuan ); //补数
system.out.println (inverse code ' syuan ); //反码
//system.out.println ('二进制n ' n );
}elseif(value0) )。
intvalue2=math.ABS(value; //负数绝对值
int value3=value2 - 1; //划一求逆,求补数
stringb value=integer.tobinarystring (value 2;
stringb fvalue=integer.tobinarystring (~value2);
int n=Bvalue.length (;
stringstr=BF value.substring (BF value.length (-n ); //截取反码下的几个数
Syuan.append('1,';
Syuan.append(bvalue;
system.out.println (originalcodeis : ) Syuan );
system.out.println (inversecodeis :1,str );
stringb bvalue=integer.tobinarystring (~value3);
stringstr3=bb value.substring (BF value.length (-n );
system.out.println (' complementcodeis :1,' str3);
} else {
system.out.println (0originalcodeisnotonly );
system.out.println (' [0] riginal code 00…0 );
system.out.print ln (' [-0 ] riginal code 10…0 );
system.out.print ln------------------------ -;
system.out.println (0complementcodeisnotonly );
system.out.println('[0]和[-0] Complement code 00.0' );
system.out.print ln------------------------ -;
system.out.println (0inversecodeisnotonly );
system.out.println (' [0] inverse code 00……0 );
system.out.print ln (' [-0 ] inverse code 11 .1' );
}
system.out.print ln---------------------------------------------------- ----------------------------------- -
}
}
执行效果:
请参见----------------------------------------- -
真值- -原始代码
Please enter an integer!
-65435
originalcodeis :1,1111111110011011
inversecodeis :1,00000001100100
complementcodeis :1,000000001100101
请参见----------------------------------------- -
以上是本文的全部内容,希望对大家的学习有帮助。 另外,我希望你能多多支持编剧。