# 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 ```