# 2의 보수와 바이트
compBinaryStr를 8자리로 잘라서 출력하고 싶은데
substring()을 사용하면 두번째가 에러나고
사용하지 않으면 첫번째가 잘리지 않고...
if()문 사용해서 나눠서 잘랐는데 정답 아닌 것 같아요...
#### CODE <a class='btn btn-default' href='/codes/44000'>Link</a>
```
public class TwosComplement {
public static void main(String[] args) {
String[] tests = { "00101101", "11111101" };
for (String t : tests) {
System.out.printf(" %s\n", t);
System.out.printf("+) %s\n", getComplementBinaryStr(t));
System.out.println("-----------");
System.out.println(" 00000000\n");
}
}
private static String getComplementBinaryStr(String binaryStr) {
byte decimal = (byte) (int) Integer.parseInt(binaryStr, 2);
byte complement = (byte) -decimal;
String compBinaryStr = Integer.toBinaryString(complement);
if(compBinaryStr.length() > 8){
return String.format("%8s", compBinaryStr).replace(' ', '0').substring(24,32);
}else{
return String.format("%8s", compBinaryStr).replace(' ', '0').substring(0);
}
}
}
```
#### INPUT
```
```
#### OUPUT
```
00101101
+) 11010011
-----------
00000000
11111101
+) 00000011
-----------
00000000
```