자바 배열 기초 질문입니다.

자바 배열 기초 질문입니다.

작성일 2023.10.09댓글 1건
    게시물 수정 , 삭제는 로그인 필요

ublic static void main(String[] args) {

// TODO Auto-generated method stub


int[] binary=new int[16];// 0

int index=binary.length-1;//마지막 인덱스 번호


// 역순으로 값을 배치

Scanner scan=new Scanner(System.in);

System.out.print("0~32767사이의 정수 입력:");

int num=scan.nextInt();

System.out.println("===== Lib =====");

System.out.println(Integer.toBinaryString(num));

while(true)

{

binary[index]=num%2;

num=num/2; // 1/2=0

if(num==0) break;

index--;

}

// 출력

for(int i=0;i<binary.length;i++)

{

if(i%4==0 && i!=0)

System.out.print(" ");

System.out.print(binary[i]);

}

}


이 코드에서 while(true)

{

binary[index]=num%2;

num=num/2; // 1/2=0

if(num==0) break;

index--;

}


이 부분 자세하게 설명해 주실 수 있을까요?

숫자 num이 이진법으로 바뀐후 %2를 저장 하는 건가요??


#자바 배열 선언 #자바 배열 초기화 #자바 배열 정렬 #자바 배열 출력 #자바 배열 추가 #자바 배열 길이 #자바 배열 복사 #자바 배열 자르기 #자바 배열 중복 제거 #자바 배열 크기 미지정

profile_image 익명 작성일 -

안녕하세요.

우리가 10진수를 2진수로 변환하는 방법을 그대로 코드화 시키거에요.

10이라는 값이 있을때,

2진수를 구하는 방법을 보면, 2로 나누어 그 나머지를 적습니다.

10

5 - 나머지 0

2 - 나머지 1

1 - 나머지 0

0 - 나머지 1

while(true)

{

binary[index]=num%2; 10이라는 값을 나눈 나머지를 구하는 부분이고

num=num/2; // 1/2=0 // 나머지 구했으니 그 몫을 구하는 부분이고, 즉, 5가 되겠지요.

if(num==0) break; 몫이 0이 되면 끝나게 되고,

index--; 나머지는 구한 순서가 아니라 아래서 부터 읽어 올라갑니다. 1010 으로 읽게 되지요.

}

그래서 1010으로 채워야하는데, 0이 먼저 계산되므로, 배열의 뒷부분부터 채워가면서 index를 하나씩 감소하느라 index--를 하게 되는것이지요.

참고하세요.

자바 배열기초

... 어떻게 해야 위 질문에 맞게 코드가 작성이 될까요? for(int i = 0; i... 자바에선 배열의 길이를 알 수가 있습니다. 배열참조.length 를 하시면...

자바 배열 기초 질문합니다.

... 길이가 4인 int형 배열로 선언하여서... 배열에 입력된 값들을 비교하는 코드좀... int형 배열 int[] array = new int[4]; Scanner scan = new Scanner...

자바 배열 기초질문

부탁드립니다 안녕하세요. 코드 작성해서 올려드립니다. 필요하면 수정해서 활용하세요. import java.util.Random; public class...

자바 배열 기초 질문

... 이러한 코드가 있는대 배열안의 0~7까지 문자가 하나씩하나씩 들어가고 Arrays.fill(ch,(char)0x20); 마지막 이 코드는 어떤 뜻인가요??? 메모리...

자바 배열기초질문[Array List]

... 배열을 만약 int [] A = {1, 3, 4, 7, 9, 20};에서 for문을사용해 A[0] = 20 이... // 배열의 마지막 값에서 해당 순서의 배열번째 값을 뺀 배열회차의...