728x90
1.Ex02)
package days12;
import java.io.IOException;
import java.util.Random;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오전 10:03:16
* @subject 배열의 정의, 선언, 생성, 초기화, 출력 등
* @content 변수, 참조변수, 배열
* 변수는 메모리 저장공간을 의미 여러가지의 값을 저장할 수 있다.
* 참조변수는 주소값을 가지는 저장공간, 참조할 수 있는 주소값을 가지고 있다.
* 배열 단점 - 배열크기가 자동으로 증가/감소 X
*
*/
public class Ex02 {
public static void main(String[] args) throws IOException {
// 제어문(for)+배열
Random rnd = new Random();
//0,1,2 - ArrayIndexOutOfBoundsException
int [] m = new int[3]; //배열의 크기를 3으로 잡겠다.
int idx=0; //시작 인덱스:0
char con='y';
do {
m[idx++]=rnd.nextInt(100); //0<=int<100
System.out.printf(">배열 (%d)계속 초기화 할 꺼니?", idx);
con=(char)System.in.read(); //y,Y, n, N con이라는 변수를 char형으로 읽어오겠다.
System.in.skip(System.in.available()); //공백들은 다 제거 하겠다.
//} while (con=='y'||con=='Y');
} while (m.length !=idx&&Character.toUpperCase(con)=='Y');//인덱스 값(요소)가 넘지 않아야 한다.
//인덱스 값과 배열의 크기가 같으면 방이 다 찼다는 소리
//Character.toUpperCase(con)=='Y' =>con에는 'y'가 저장되어 있고 추가로 "Y"값도 허용한다.
disp(m); //disp()라는 함수로 배열을 출력하겠다.
}//end of main
public static void disp(int[] m) {
for (int i = 0; i < m.length; i++) {
System.out.printf("[%d]=%d\n", i, m[i]);
}
}
}
2.Ex02_02)
package days12;
import java.io.IOException;
import java.util.Random;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오전 10:03:16
* @subject 배열의 정의, 선언, 생성, 초기화, 출력 등
* @content 변수, 참조변수, 배열
* 변수는 메모리 저장공간을 의미 여러가지의 값을 저장할 수 있다.
* 참조변수는 주소값을 가지는 저장공간, 참조할 수 있는 주소값을 가지고 있다.
* 배열 단점 - 배열크기가 자동으로 증가/감소 X
* =배열이 다 차면, 배열의 크기를 자동으로 증가시키자
*
*/
public class Ex02_02 {
public static void main(String[] args) throws IOException {
Random rnd = new Random();
int [] m = new int[3];
int idx=0;
char con='y';
do {
//if(방이 부족하면) {
// 배열크기를 증가시키자.
//}
if(m.length==idx) { //배열의 크기와 인덱스 값이 같으면 방이 다 찼음을 의미함.
System.out.println("배열 크기 3개 증가...");
int [] temp = new int[m.length+3]; //temp라는 임시 배열을 생성,m의 배열의 크기를 3증가 시키겠다.
for (int i = 0; i < m.length; i++) {
temp[i]=m[i]; //m의 배열을 temp에 복사를 하자.
}
m=temp; //temp에 m이라는 배열의 값이 저장이 된다.
//System.arraycopy(m, 0, temp, 0, m.length); System.arraycopy사용하는 방
}
m[idx++]=rnd.nextInt(100);
System.out.printf(">배열 (%d)계속 초기화 할 꺼니?", idx);
con=(char)System.in.read();
System.in.skip(System.in.available());
} while (Character.toUpperCase(con)=='Y');
disp(m);
}//end of main
public static void disp(int[] m) {
for (int i = 0; i < m.length; i++) {
System.out.printf("[%d]=%d\n", i, m[i]);
}
}
}
3.Ex02_03)
package days12;
import java.util.Arrays;
/**
* @author kimjieun
* @date 2023. 2. 10.-오전 10:49:56
* @subject 배열복사(copy) /배열복제(clone)
* @content
*/
public class Ex02_03 {
public static void main(String[] args) {
int [] m = {76, 34, 10};
int [] temp = new int[m.length+3];
//sol2)배열복사
//Arrays 클래스? 배열을 다루기 쉽도록 기능(함수)가 구현되어 있는 클래스
//Arrays.fill()
//Arrays.toString()
//Arrays.copyOf(null, 0);
//1.기능 : System 클래스 안에 배열을 복사하는 메서드
//2.매개변수 : src, srcPos, dest, destPos, length
//3.리턴값(리턴자료형) : void
System.arraycopy(m, 0, temp, 1, m.length);
//src:source array 원본 배열
//srcPos: starting position in the source array. 배열 위치를 어디서 부터?
//dest:destination array(목적이 되는 배열)
//destPos: starting position in the destination data. 배열의 목적지를 어디까지?
//length : the number of array elements to be copied. 몇개를 복사할껀지
System.out.println(Arrays.toString(m));
/*sol1)배열복사
for (int i = 0; i < m.length; i++) {
temp[i]=m[i];
}
m=temp;
System.out.println(Arrays.toString(m));
*/
}
}
4.Ex03)
package days12;
import java.util.Arrays;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오전 11:03:45
* @subject
* @content 1)배열 단점:배열크기 자동 증가/감소
* 2)배열 단점:추가(10), 삭제, 삽입(insert)
* 3)배열 단점:
*
* ->컬렉션 클래스:ArrayList 등등
*
*/
public class Ex03 {
public static void main(String[] args) {
int [] m = {3, 5, 2, 4, 1}; //나는 이 배열에 10이라는 값을 추가해서 넣고 싶다.
//append() 배열에 어떤값을 맨뒤에 추가할때 사용하는 함수 append()라 한다.
//배열의 크기를 체크해서 추가...
//[삭제] 2번째 인덱스인 2를 삭제하겠다.
/*
m[2]=m[3];
m[3]=m[4];
m[4]=0;
*/
for (int i = 3; i < m.length; i++) {
m[i-1]=m[i]; //2번째에 있는 것을 삭제하기 위해서 3번째 인덱스를 2번째 인덱스로 데리고 오므
}
m[m.length-1]=0;
//[삽입]
//1.배열 크기 증가 체크
int [] temp = new int[m.length+3];
System.arraycopy(m, 0, temp, 0, m.length);
m=temp;
//2 인덱스 위치에 100을 삽입...
/*
for (int i = 2; i < 5; i++) {
m[i+1]=m[i]; //m에 i값을 불러와서 m[3]값에다가 넣는다는 의미이다.
}
*/
for (int i = 4; i >=2; i--) {
m[i+1]=m[i]; //m에 i값을 불러와서 m[3]값에다가 넣는다는 의미이다.
}
m[2]=100;
System.out.println(Arrays.toString(m));
//[수정]
m[2]=10; //수정은 그냥 위치에다가 새로운 값을 집어 넣으면 된다.
}
}
5.Ex04)
package days12;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
/**
* @author kimjieun
* @date 2023. 2. 10.-오전 11:36:37
* @subject ***시험***
* @content 한 반에 30명인 학생의 성적 관리
* 학생이름, 학생의 국어점수, 수학, 영어점수 와 총점, 평균, 등수
* 1)각각의 학생정보를 입력: 이름, 국,영,수 점수
* 2)총점, 평균, 등수 처리
* 3)학생 정보를 출력.
*/
public class Ex04 {
public static void main(String[] args) throws IOException {
//배열사용
final int STUDENT_COUNT = 30; //final 수정하지 않는다는 의미 중간에 STUDENT_COUNT=30 이외의 값으로 바뀌면 안
String [] names = new String[STUDENT_COUNT];
int [] kors = new int[STUDENT_COUNT];
int [] engs = new int[STUDENT_COUNT];
int [] mats = new int[STUDENT_COUNT];
int [] tots = new int[STUDENT_COUNT];
double [] avgs = new double[STUDENT_COUNT];
int [] ranks = new int[STUDENT_COUNT];
int cnt=0; //입력받은 학생수를 저장할 변수
char con = 'y';
String name;
int kor, eng, mat, tot, rank;
double avg;
Scanner scanner = new Scanner(System.in);
do {
//입력
System.out.print(">이름 국어 영어 수학 정보 입력?");
name=getName();//scanner.next();
kor=getScore();//scanner.nextInt();
eng=getScore();//scanner.nextInt();
mat=getScore();//scanner.nextInt();
tot=kor+eng+mat;
avg=(double)tot/3;
rank=1; //등수는 그냥 1로 초기화 하겠다.
//각 배열에 채워넣는 코딩
names[cnt]=name;
kors[cnt]=kor;
engs[cnt]=eng;
mats[cnt]=mat;
tots[cnt]=tot;
avgs[cnt]=avg;
ranks[cnt]=rank;
cnt++; //입력받을때 마다 등수가 1씩 증가함.
System.out.print(">학생 입력 계속?");
con=(char)(System.in.read());
System.in.skip(System.in.available());
} while (Character.toUpperCase(con)=='Y');
System.out.printf(">입력받은 학생수 : %d명 \n", cnt);
//[등수처리]
/* 함수를 사용하지 않는 방
for(int i=0; i<tots.length; i++) { //등수를 매길
ranks[i]=1;
for (int j = 0; j <tots.length; j++) {
//if(tots[i]<tots[j] && i!=j) ranks[i]++;
if(tots[i]<tots[j]) ranks[i]++;
}
}
*/
for (int i = 0; i < tots.length; i++) {
ranks[i]=getRank(i+1,tots); //getRank의 함수에서 no(학생은) 1번 부터 시작하니
}
//입력받은 모든 학생 정보를 출력
for (int i = 0; i < cnt; i++) {
System.out.printf("[%d]\t%s\t%d\t%d\t%d\t%d\t%.2f\t%d\n",
i+1, names[i], kors[i], engs[i], mats[i], tots[i], avgs[i], ranks[i]);
//배열의 인덱스는 0부터 시작하므로 i+1로 1만들어 주
}
//1등 학생의 성적정보(이름/국어/영어/수학/총점/평균/등급)을 출력
System.out.println("1등 학생 정보출력하기");
for (int i = 0; i < cnt; i++) {
if(ranks[i]==1)
System.out.printf("[%d]\t%s\t%d\t%d\t%d\t%d\t%.2f\t%d\n",
i+1, names[i], kors[i], engs[i], mats[i], tots[i], avgs[i], ranks[i]);
//배열의 인덱스는 0부터 시작하므로 i+1로 1만들어 주
}
//1등부터 3등학생까지 학생의 성적정보(이름/국어/영어/수학/총점/평균/등급)을 출력
System.out.println("1등 학생 정보출력하기");
for (int i = 0; i < cnt; i++) {
if(ranks[i]<=3)
System.out.printf("[%d]\t%s\t%d\t%d\t%d\t%d\t%.2f\t%d\n",
i+1, names[i], kors[i], engs[i], mats[i], tots[i], avgs[i], ranks[i]);
//배열의 인덱스는 0부터 시작하므로 i+1로 1만들어 주
}
}//end of main
//학생의 번호를 입력하면 등수를 반환하는 함
private static int getRank(int no, int[] tots) {
// 총점
int tot = tots[no-1];
//모든 학생의 총점 비교 tots 배열
int rank=1;
for(int j=0; j<tots.length; j++) {
if(tot<tots[j]) rank++;
}
return rank;
}
public static String getName() {
// 성씨 128 개 44032 ~ 55203 임의의 정수 -> char 한글 한 문자
char [] nameArr = new char[3];
Random rnd = new Random();
for (int i = 0; i < nameArr.length; i++) {
nameArr[i] = (char)( rnd.nextInt('힣' - '가' + 1) + '가' ); //범위는 '가'<= rnd < '힣'이니까 +1
}
// char [] -> String 변환
String name = new String( nameArr );
return name;
}
public static int getScore() {
return (int)(Math.random()*101); //0~100까지 국,영,수의 점수를 랜덤으로 부여받는 getScore함수 생
}
}//end of class
6.Ex04_02)
package days12;
import java.util.Random;
public class Ex04_02 {
public static void main(String[] args) {
//5~21
//0~16
//rnd.nextInt(17)+5
// 44032 55203
//System.out.printf("%d\t%d\n", (int)'가', (int)'힣');
Random rnd = new Random();
char one=(char)(rnd.nextInt('힝'-'가' + 1)+'가');
System.out.println(one);
}
}
7.Ex04_03)
package days12;
import java.util.Arrays;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오후 2:06:48
* @subject
* @content
*/
public class Ex04_03 {
public static void main(String args[]) {
//등수처리? 총점을 가지고 비교하는게 나을것 cause,,, 평균은 소수점 3자리에서 반올림하기 때문
int [] tots = {186,189,188,59,132,124};
int [] ranks = new int[6];
for(int i=0; i<tots.length; i++) { //등수를 매길
ranks[i]=1;
for (int j = 0; j <tots.length; j++) {
//if(tots[i]<tots[j] && i!=j) ranks[i]++;
if(tots[i]<tots[j]) ranks[i]++;
}
}
System.out.println(Arrays.toString(tots));
System.out.println(Arrays.toString(ranks));
}//end of main
}//end of class
/*
* for(int i=0; i<tots.length; i++){
ranks[i] = 1; //1등으로 초기화
for (int j = 0; j < tots.length; j++) { //기준데이터와 나머지데이터비교
if(tots[i]<tots[j]){ //기준데이터가 나머지데이터라 비교했을때 적으면 rank[i] 카운트
ranks[i]++; //COUNT
}
}
}
//[3] 출력
for (int i = 0; i < tots.length; i++) {
System.out.printf("\t%s점%s등",tots[i],ranks[i]);
}
*/
8.Ex05)
package days12;
public class Ex05 {
public static void main(String[] args) {
int [] score = { 79, 88, 91, 33, 100, 55, 95 };
int max = score[0];
int min = score[0];
for (int i = 1; i < score.length; i++) {
if(max<score[i]) max=score[i];
else if(min>score[i]) max=score[i];
}
System.out.println("최대값: "+ max);
System.out.println("최소값: "+ min);
}
}
9.Ex06)
package days12;
import java.util.Arrays;
import java.util.Random;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오후 3:05:51
* @subject 카드섞기, 화투 섞기 등등
* @content
*/
public class Ex06 {
public static void main(String[] args) {
int [] m = { 0,1,2,3,4,5,6,7,8,9 };
System.out.println(Arrays.toString(m));
shuffle(m);
System.out.println(Arrays.toString(m));
}//end of main
private static void shuffle(int[] m) { //카드 섞기
Random rnd = new Random();
int idx1=0, idx2; //idx1만 0으로 받고 idx2만 값을 랜덤으로 해서 섞겠다.
//int idx1, idx2; //첫번째 위치 /굳이 두개다 랜덤값 받을 필요없으니
for(int i=0; i<100; i++) {
//idx1=rnd.nextInt(m.length); idx1=0으로 고정시키지 않았을 때 사용!
idx2=rnd.nextInt(m.length);
System.out.printf("%d-%d \n", idx1, idx2);
int temp=m[idx1];
m[idx1]=m[idx2];
m[idx2]=temp;
}
}//end of shuffle
}//end of class
10.Ex07)
package days12;
import java.util.Arrays;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오후 3:20:03
* @subject 정보처리기사 실기(알고리즘)
* @content
* 정렬(Sort): 특정 기준에 맞게 데이터를 열거하는 알고리즘.
* (성적순, 키순, 나이순...)
* 정렬 - 오름차순(ascending) 정렬 1,2,3,4,5 가나다라마 abcde 작은->큰
* 내림차순(descending) 정렬 5,4,3,2,1 마라다나가 edcba 큰->작은
* [정렬 알고리즘 방법]
* 1.버블정렬, 선택정렬, 삽입정렬, 병합정렬
* 버블 정렬(Bubble Sort) : 인접한 두 원소를 검사하며 정렬하는 알고리즘.
* 선택 정렬(Selection Sort) : 배열 내 원소의 수만큼 순환하며 최소값을 앞으로 배치하는 알고리즘.
* 삽입 정렬(Insert Sort) : 정렬되지 않은 원소를 적절한 위치에 삽입하는 알고리즘.
* 병합 정렬(Merge Sort) : 이미 정렬된 2개의 배열을 병합하여 새로운 배열로 만드는 알고리즘.
*/
public class Ex07 {
public static void main(String[] args) {
// [버블정렬(bubble sort)]-asc(오름차순)정렬
//-두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법
int [] m = {3, 5, 2, 4, 1};
System.out.println(Arrays.toString(m));
//bubbleSort(m);
//선택정렬
SelectionSort(m);
}//end of main
public static void SelectionSort(int[] m) {
/*
Arrays.sort(m);
System.out.println(Arrays.toString(m));
*/
//1회전:m[0]=가장작은 값(5개중);
int minIndex = 0;
for (int i = 1; i < m.length; i++) {
if(m[minIndex] > m[i]) {
minIndex = i;
}
}
System.out.println("> minIndex = " + minIndex);
int temp = m[0];
m[0] = m[minIndex];
m[minIndex] = temp;
System.out.println( Arrays.toString(m) );
// 2회전 : m[1] = 가장작은값 (4개중);
minIndex = 1;
for (int i = 2; i < m.length; i++) {
if(m[minIndex] > m[i]) {
minIndex = i;
}
}
System.out.println("> minIndex = " + minIndex);
temp = m[1];
m[1] = m[minIndex];
m[minIndex] = temp;
System.out.println( Arrays.toString(m) );
// 3회전 : m[2] = 가장작은값 (3개중);
minIndex = 2;
for (int i = 3; i < m.length; i++) {
if(m[minIndex] > m[i]) {
minIndex = i;
}
}
System.out.println("> minIndex = " + minIndex);
temp = m[2];
m[2] = m[minIndex];
m[minIndex] = temp;
System.out.println( Arrays.toString(m) );
// 4회전 : m[3] = 가장작은값 (2개중);
minIndex = 3;
for (int i = 4; i < m.length; i++) {
if(m[minIndex] > m[i]) {
minIndex = i;
}
}
System.out.println("> minIndex = " + minIndex);
temp = m[3];
m[3] = m[minIndex];
m[minIndex] = temp;
System.out.println( Arrays.toString(m) );
/*
int minIndex = 0;
for (int i=0; i < m.length-1; i++) {
int minIndex=i;
for(int j=i+1; j<m.length; j++) {
if(m[minIndex]>m[j]) minIndex=j;
}
}
System.out.println(">minIndex = " + minIndex);
int temp=m[i];
m[i]=m[minIndex];
m[minIndex]=temp;
System.out.println( Arrays.toString( m ) );
*/
}
/*
public static void SelectionSort(int[] m) {
//0-1 0-2 0-3 0-4
//1-2 1-3 1-4
//2-3 2-4
//3-4
for (int i = 0; i < m.length-1; i++) {
for (int j = i+1; j < m.length; j++) {
System.out.printf("%d-%d ", i, j);
if( m[i] > m[j] ) {
System.out.print(" *** ");
int temp = m[i];
m[i] = m[j];
m[j] = temp;
}
System.out.println(Arrays.toString(m));
} // for j
} // for i
}*/
public static void bubbleSort(int[] m) {
// [버블정렬( bubble sort )] - asc( 오름차순 ) 정렬
// - 인접한 두 원소를 검사하며 정렬하는 알고리즘.
// - 두 개의 인접한 자료 값을 비교하면서 위치를 교환하는 방식으로 정렬하는 방법
// 0 -1 을 비교해서 3이 5보다 크면 3을 뒤로 보내고 작으면 그대로...
// 3 5 2 4 1
// 3 2 5 4 1
// 3 2 4 5 1
// 3 2 4 1 [5] ->1회차
// 2 3 4 1 [5]
// 2 3 4 1 [5]
// 2 3 1 [4][5] ->2회차
// 2 3 1 [4][5]
// 2 1 [3][4][5] ->3회차
// 1 [2][3][4][5] ->4회차
// 0-1 1-2 2-3 3-4 1회차 ****
// 0-1 1-2 2-3 2회차 ***
// 0-1 1-2 3회차 **
// 0-1 4회차 *
// [1][2][3][4][5]
// i=0 j=3
// i=1 j=2
// i=3 j=1
// i=4 j=0
// i+j=4
// j=4-i
for (int i = 0; i < 4; i++) { // i = 행 갯수
for (int j = 0; j < 4-i; j++) { // j = 열(별) 갯수
System.out.printf("%d-%d ", j , j+1);
if( m[j] > m[j+1]) {
System.out.print( " *** ");
int temp = m[j];
m[j] = m[j+1];
m[j+1] = temp;
}
System.out.println( Arrays.toString( m ) );
}
}//for
}//end of bubble sort
}//end of class
11.Ex08)
package days12;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오후 4:53:37
* @subject
* @content
*/
public class Ex08 {
public static void main(String[] args) {
//
}
}
12.Test01)
package days12;
import java.util.Scanner;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오전 9:06:59
* @subject 1. 년도와 월을 입력받아서 달력 출력
* @content
*/
public class Test01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year, month;
System.out.printf("> 출력하고 싶은 년도와 원을 입력하세요? ");
year = scanner.nextInt();
month = scanner.nextInt();
printCalendar(year, month);
} // end of main
private static void printCalendar(int year, int month) {
int lastDay = getLastDay(year, month);
int dayOfWeek = getDayOfWeek(year, month, 1);
System.out.printf("\t[%d년 %d월]\n", year, month );
days08.Ex03_02.drawLine(60,'-');
String week="일월화수목금토";
for(int i=0; i< week.length(); i++) System.out.printf("\t%c", week.charAt(i));
System.out.println();
System.out.println( "-".repeat(60));
for(int i=0; i<dayOfWeek; i++) {
System.out.print("\t");
}
for(int i=1; i<=lastDay; i++) {
System.out.printf("\t%d", i);
if((i+dayOfWeek)%7==0) {
System.out.println();
}
}
System.out.println();
System.out.println( "-".repeat(60));
}
private static int getDayOfWeek(int year, int month, int day) {
int totalDays = getTotalDays(year, month, day);
int dayOfWeek = totalDays % 7;
return dayOfWeek;
}
private static int getTotalDays(int year, int month, int day) {
int totalDays = 0;
totalDays = ( year - 1 ) * 365 + ( year - 1 )/4 - ( year - 1 )/100 + ( year - 1 )/400 ; //이전년도의 날짜 계산
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
for (int i = 0; i < month - 1; i++) totalDays += months[i];
if( month >= 3 && days08.Ex04.isLeapYear(year) ) totalDays++;
totalDays += day;
return totalDays;
}
private static int getLastDay(int year, int month) {
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (month == 2)
return days08.Ex04.isLeapYear(year) ? 29 : 28;
return months[month - 1];
}
}
13.Test02)
package days12;
import java.util.Scanner;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오전 9:07:43
* @subject 2. 머니(money)를 입력받아서 화폐단위 갯수 출력
( 조건 : 스위치 변수 사용 )
* @content
*/
public class Test02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(">얼마를 계산하시나요?");
int money, unit=50000;
money=scanner.nextInt();
boolean sw = false;
int count = 0;
while( unit >= 1) {
count = money / unit;
System.out.printf("%d원 : %d 개\n", unit, count);
money %= unit;
unit /= ( !sw ? 5 :2 );
sw = !sw;
}
}
}
14.Test03)
package days12;
import java.util.Arrays;
import java.util.Scanner;
/**
*
* @author kimjieun
* @date 2023. 2. 10.-오전 9:07:56
* @subject 3. 10진수 정수(int)를 입력받아서 16진수로 출력.
* @content
*/
public class Test03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(">십진수는?");
int n=scanner.nextInt();
String hexN=Integer.toHexString(n);
//int zeroCount = 16-hexN.length();
//System.err.printf("%s%s", "000000000000",hexN);
//System.out.println(Integer.toHexString(n));
System.out.println(hexN);
//Arrays.fill(hex, '0');
}
}
/*
// 16진법 : 0 1 2 3 4 5 6 7 8 9 10(a)~ 15(f)
int n = 123; // 7B
int 몫, 나머지; // share, rest
// String b = "0101"; -> 1010
char [] hex = new char[4]; // [0][0][7][B]
for (int i = 0; i < hex.length; i++) {
hex[i] = '0';
}
int index = hex.length-1; // 3
while( n != 0) {
몫 = n/16;
나머지 = n%16;
// 10(A) 11(B) 12(C) ~ 15(F) 'F'
// 나머지 = 나머지 >=10? 나머지 + 55 : 나머지;
char value = (char)( 나머지 += 나머지 >=10 ? 55 : 48 ) ;
hex[index--] = value;
/*
if ( 나머지 >= 10) {
switch (나머지) {
case 10:
b += 'A';
break;
case 11:
b +='B';
break;
default:
break;
}
} else {
b += 나머지;
}
n = 몫;
} //
System.out.println( "0x"+ Arrays.toString( hex ) );
} // end of main
} // end of class
*/
728x90
'쌍용국비교육 > java' 카테고리의 다른 글
[days24] Vector 컬렉션 클래스 (0) | 2023.02.28 |
---|---|
days13 : java수업내용정리(2월 13일) (0) | 2023.02.13 |
days10 : java수업내용정리(2월 8일) (0) | 2023.02.10 |
day09 : java수업내용정리(2월 7일) (0) | 2023.02.10 |
day08 : java수업내용정리(2월 6일) (0) | 2023.02.09 |