多谢
整数的反码:
1、[X]=X 0≤X<2^(n-1)
2、[X]=(2^n-1)+X -2^(n-1)<X≤0
小数的反码:
1、[X]=X 0≤X<1
2、[X]=(2-2^(-n+1))+X -1<X≤0
整数的补码:
1、[X]=X 0≤X<2^(n-1)
2、[X]=2^n+X -2^(n-1)≤X<0
小数的补码:
1、[X]=X 0≤X<1
2、[X]=2+X -1≤X<0
整数的反码:
1、[X]=X 0≤X<2^(n-1)
2、[X]=(2^n-1)+X -2^(n-1)<X≤0
小数的反码:
1、[X]=X 0≤X<1
2、[X]=(2-2^(-n+1))+X -1<X≤0
整数的补码:
1、[X]=X 0≤X<2^(n-1)
2、[X]=2^n+X -2^(n-1)≤X<0
小数的补码:
1、[X]=X 0≤X<1
2、[X]=2+X -1≤X<0
if (bs == null) {
System.out.println("null");
return;
}
if (bs.length() == 0) {
System.out.println("empty");
return;
}
if (len <= 0) {
System.out.println("len is <= 0");
return;
}
len = bs.length() < len ? len : bs.length();
StringBuffer sb = new StringBuffer(len);
int n = 0;
for (int i = len - bs.length(); i > 0; i--) {
sb.append('0');
if (++n % 8 == 0) sb.append(' ');
}
for (int i = bs.length() - 1; i >=0 ; i--) {
sb.append(bs.get(i) ? '1' : '0');
if (++n % 8 == 0) sb.append(' ');
}
System.out.println(sb.toString());
} public static void main(String[] args) {
int i = 1266974;
double f = -3.36727;
//----------------------------------------------------
int bitsi = i;
BitSet bsi = new BitSet(Integer.SIZE);
for (int n = 0; n < Integer.SIZE; n++) {
bsi.set(n, ((bitsi >>> n) & 1) == 1);
}
System.out.print("整型原码:");
print(bsi, 32);
bsi.flip(0, Integer.SIZE);
System.out.print("整型补码:");
print(bsi, 32);
//----------------------------------------------------
long bitsf = Double.doubleToRawLongBits(f);
BitSet bsf = new BitSet(Double.SIZE);
for (int n = 0; n < Double.SIZE; n++) {
bsf.set(n, ((bitsf >>> n) & 1L) == 1L);
}
System.out.print("浮点原码:");
print(bsf, 64);
bsf.flip(0, Double.SIZE);
System.out.print("浮点补码:");
print(bsf, 64);
}}
if (bs == null) {
System.out.println("null");
return;
}
if (bs.length() == 0) {
System.out.println("empty");
return;
}
if (len <= 0) {
System.out.println("len is <= 0");
return;
}
len = bs.length() < len ? len : bs.length();
StringBuffer sb = new StringBuffer(len);
int n = 0;
for (int i = len - bs.length(); i > 0; i--) {
sb.append('0');
if (++n % 8 == 0) sb.append(' ');
}
for (int i = bs.length() - 1; i >=0 ; i--) {
sb.append(bs.get(i) ? '1' : '0');
if (++n % 8 == 0) sb.append(' ');
}
System.out.println(sb.toString());
} public static void main(String[] args) {
int i = 1266974;
double f = -3.36727;
//----------------------------------------------------
int bitsi = i;
BitSet bsi = new BitSet(Integer.SIZE);
for (int n = 0; n < Integer.SIZE; n++) {
bsi.set(n, ((bitsi >>> n) & 1) == 1);
}
System.out.print("整型原码:");
print(bsi, 32);
bsi.flip(0, Integer.SIZE);
System.out.print("整型补码:");
print(bsi, 32);
//----------------------------------------------------
long bitsf = Double.doubleToRawLongBits(f);
BitSet bsf = new BitSet(Double.SIZE);
for (int n = 0; n < Double.SIZE; n++) {
bsf.set(n, ((bitsf >>> n) & 1L) == 1L);
}
System.out.print("浮点原码:");
print(bsf, 64);
bsf.flip(0, Double.SIZE);
System.out.print("浮点补码:");
print(bsf, 64);
}}