//反码
x = n - 1;//知道了补码,求反码的时候,只要再-1,就可以了
//p("反码是:");
//这里需要说明的是,因为sb有数据,所以需要先将sb的数据全部清空再存入
sb.delete(0,sb.length());
for (int i = 31; i > 0 ;i-- ) {//所以这里
//p((x % 2));
if (i % 8 == 0) {//为了美化格式
sb.append( (x % 2) + " ");
}else {
sb.append(x % 2);
}
x = x >>> 1;
}
sb.append("1"); //补上符号位
sb.reverse();
p(n + " 的反码是:" + sb + "\r\n");
//-----------------------------------------------------------------
//补码:
//p("补码是:"); //负数从电脑上直接得到的就是补码
x = n;
//这里需要说明的是,因为sb有数据,所以需要先将sb的数据全部清空再存入
sb.delete(0,sb.length());
for (int i = 31; i > 0 ;i-- ) {
//p((x % 2));//
int a = x % 2;
//p(a & 1); //因为一个负数 % 一个数结果还是负数,看着不爽,如果 & 1 就变过来了
if (i % 8 == 0) {//为了美化格式
sb.append((a & 1)+ " ");
}else {
sb.append(a & 1);
}
x = x >>> 1;
}
sb.append("1"); //补上符号位
sb.reverse();
p(n + " 的补码是:" + sb + "\r\n");