정수 다양한 진수로 표기법
- 정수 리터럴(literal)
정수형 자료를 통틀어 정수 리터럴로 칭한다.
- 정수 접미어
정수 리터럴은 기본적으로 int형을 따른다. 하지만 long(8Byte) 자료형을 사용할 때는 숫자 뒤에 'l' 또는 'L'을 붙여주어야 한다. - 10진 정수 리터럴은 일상 생활의 표기법을 따른다.
- 8진 정수 리터럴은 앞에 0을 붙여 표기한다. 012는 10진 진수로 전환하면 10이 된다.
$$012 = 8^1_1 + 8^0_2 = 10_{(10)}$$
- 16진 정수 리터럴은 앞에 0x 또는 0X를 붙여서 표기한다.
$$0X11a = 16^2_1 + 16^1*1 + 16^0_(a=10)=282$$
10진 정수를 8진수, 16진수로 표기하는 프로그램
- System.out.printf(출력서식, 출력할 내용);를 이용한다.
format 안의 형식 문자열 순서대로 args 부분에 값을 가진 변수명을 넣어준다.
/r은 '현재 줄의 처음'으로 이동
-
역슬래시() 다음에 알파벳, 특정 부호를 쓰면 따옴표 안에서 특정 문자로 인식하거나,
-
퍼센트(%) 다음에 특정 알파벳을 넣어주어 콤마(,) 뒤에 변수를 대입하여 결과값을 출력한다.
import java.util.Scanner;
Scanner stdIn = new Scanner(System.in);
System.out.print("10진 정수를 입력하세요: ");
int x = stdIn.nextInt();
System.out.printf("입력하 10진 정수는 %d 입니다.\n", x);
System.out.printf("변환한 8진수는 %o, 16진수는 %x 입니다.\n",x, x);
// System.out.printf(format, args);
결과
10진 정수를 입력하세요: 36
입력하 10진 정수는 36 입니다.
변환한 8진수는 44, 16진수는 24 입니다.
printf를 이용한 소수점 표기법
- 규칙 : %x . y
x는 최소 표기 총 유효숫자수 ( 소수점 (.) 포함)
y는 고정 표기 소수점자리수 - 다음 예제를 통해 학습하자.
import java.util.Scanner;
Scanner stdIn = new Scanner(System.in);
for(;;) {
System.out.print("숫자를 입력하세요(99999입력시 종료):");
float x = stdIn.nextFloat();
System.out.printf("입력하신 숫자는 %8.1f 입니다.\n", x);
System.out.printf("입력하신 숫자는 %08.1f 입니다.\n", x);
if (x==99999) break;
}
결과
숫자를 입력하세요(99999입력시 종료):11
입력하신 숫자는 11.0 입니다.
입력하신 숫자는 000011.0 입니다.
숫자를 입력하세요(99999입력시 종료):123.4567
입력하신 숫자는 123.5 입니다.
입력하신 숫자는 000123.5 입니다.
숫자를 입력하세요(99999입력시 종료):100000000
입력하신 숫자는 100000000.0 입니다.
입력하신 숫자는 100000000.0 입니다.
숫자를 입력하세요(99999입력시 종료):99999
입력하신 숫자는 99999.0 입니다.
입력하신 숫자는 099999.0 입니다.
- 정수 자리는 8.1f 와 관계 없이 자유롭게 변화한다. 단, 소수점(.)을 포함한 총 숫자의 자리수가 8자리 미만일 경우, default값으로 출력 값 왼쪽에 '공백'이 오게 되며, 08.1f로 설정한 경우 공백 대신 '0'이 출력된다.
- 8.1f에서 .1은 어떤 값이 입력돼도 소수점 2번째 자리에서 반올림하여 소수점 1번째 자리까지 출력한다는 의미이다.
'Java > Java 기초' 카테고리의 다른 글
Java9 문자열 배열 (0) | 2020.05.08 |
---|---|
Java8 배열과 확장for문 (0) | 2020.05.07 |
Java6 반복문 for (0) | 2020.05.04 |
Java5 반복문 while, Do~while (0) | 2020.04.30 |
Java4 정렬, 비교, Switch (0) | 2020.04.29 |