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
반응형

+ Recent posts