1. 십진수 > 이진수 : toBinnaryString 사용
long number = 123;
String longbi = Long.toBinaryString(number);
int number = 123;
String intbi = Integer.toBinaryString(number);
-----------------------
결과값 1111011
2. 십진수 > 이진수 : 함수 구현
String bi ="";
int number = 123;
while(number>0) {
bi = number%2+bi;
number /=2;
}
System.out.println(bi);
--------------
결과값 : 1111011
3. 이진수 > 십진수 : Integer.parseInt, Long.parseInt 사용
String bi = "1111011";
int t1 = Integer.parseInt(bi,2);
int t2 = Long.parseLong(bi,2);
System.out.println(t1);
System.out.println(t2);
---------------------------
결과값
123
123
4. 이진수 > 십진수 : 함수 구현
String bi = "1111011";
int answer = 0;
for(int i = 0; i < bi.length(); i++) {
int spot = bi.charAt(i) - '0';
if(spot>0)answer += Math.pow(2, bi.length()-i-1);
};
System.out.println(answer);
------------------
결과값
123
* char를 int형으로 변환하기 위해 char에서 '0'을 뺐습니다. 0이 아스키값으로 48이고 1부터는 여기에 1씩 더해갑니다. 9는 아스키코드값이 57이죠. 즉 9를 구하려면 57 - 48을 해주면 되기 때문에 '0'을 빼준겁니다.
반응형