728x90
반응형
문제 1
- 10진수 값을 2진수 값으로 변환하는 코드를 만들어라.
- 배열과 반복문을 이용한다.
- 사용자가 직접 10진수 값을 입력받아 정수형 num에 저장한 뒤 연산한다.
▶ 코드
/*10진수 -> 2진수*/
Scanner scan = new Scanner(System.in);
int num=0,i,j;
int two[] = new int[20];
//10진수 입력
System.out.print("10진수 입력>>");
num = scan.nextInt();
//2진법
for(i=0;num!=0;i++){
two[i]=num%2; //나머지 값을 배열에 저장
num=num/2; //2로 나눈 값을 num에 넣고 바뀐 num값으로 연산
}
//2진수 출력*
System.out.print("2진수:");
for(j=i-1;j>=0;j--){ //배열의 값을 저장된 부분(i-1)부터 0까지 거꾸로 출력
System.out.print(two[j]);
}
System.out.println();
scan.close();
▶ 출력 결과
10진수 입력>>10
2진수:1010
10진수 입력>>15
2진수:1111
10진수 입력>>31
2진수:11111
문제 2
- 2진수 값을 10진수 값으로 변환하는 코드를 만들어라.
- 배열과 반복문을 이용한다.
- 사용자가 직접 2진수 값을 입력받아 정수형 num2에 저장한 뒤 연산한다.
▶ 코드
/*2진수 -> 10진수*/
int i,j,k,sum=0,num2=0,temp=1;
Scanner scan = new Scanner(System.in);
//2진수 입력
System.out.print("2진수 입력>>");
num2 = scan.nextInt();
//입력된 정수형 2진수를 정수형 배열에 하나씩 넣음
int ten[] = new int[20];
for(i=0;num2!=0;i++){
ten[i]=num2%10;
num2=num2/10;
}
//10진법
for(k=0;k<i;k++){ //저장된 배열(i)만큼 계산
if(ten[k]==1){ //1이면 값을 sum에 더한다
sum=sum+temp;
}
temp*=2; //한 칸씩 반복할 때마다 2를 곱한다.
}
System.out.println("10진수:"+sum); //출력
scan.close();
▶ 출력 결과
2진수 입력>>1010
10진수:10
2진수 입력>>1111
10진수:15
2진수 입력>>11111
10진수:31
728x90
반응형
'문제 > JAVA' 카테고리의 다른 글
[JAVA] 옹알이 (0) | 2023.05.28 |
---|---|
[JAVA] 문자열에 섞여있는 알파벳 대소문자 변환 (0) | 2023.05.24 |
[JAVA] 삼총사 (0) | 2023.05.24 |
[JAVA] 알파벳 대소문자 변환 (아스키 코드표 이용) (0) | 2023.05.23 |
[JAVA] 금액 표시하기 (돈 단위 표시) (0) | 2023.05.23 |