[03]JAVA Nam GungSung Class(10 07) - Jo-Jun-Yeong/NamGungSung-class GitHub Wiki
- 기본형 (Primittive type)- 표현범위.
-
Byte 타입의 경우 -2^7 ~ 2^7-1 의 값을 저장할 수 있다., S-7bit
0\7 bit - 0이면 양수 0127(2^7)128(2^7). 총 256개(2^8)가지
1\7 bit - 1이면 음수 -1 -
short 타입의 경우-2^15 ~ 2^15가지
S15bit -
Char 0 ~ 2^16-1
**char은 문자를 저장하는 타입이지만 컴퓨터는 숫자를 저장함으로 문자를 해당 숫자로 변경하여 저장한다.
Ex) char ‘A’ ->char 65 로 저장이 된다.
16bit 를 모두 양수값으로 사용한다,
** 형식화된 출력 - printf()
printn()의 단점 - 출력 형식 지정 불가
실수의 자리수 조절 불가 - 소수점 n자리만 출력하려면?
System.out.println(10/3); // 3. //
소수점을 출력하려면 둘중하는 실수여야한다
S
System.out.println(10.0/3); // 3.333333335
10진수로만 출력된다. System.out.println(0x1A); // 26 <- 10진수로 출력이됨
printf()로 출력형식 지정 가능
System.out.printf(“%.2f”, 10.0/3); //3.33 (%.2f ->소수점 둘째자리)
System.out.printf(“%d”, 0x1A); // 26 (“%d” -> 10진수)
System.out.printf(“%X”, 0x1A); // 1A (”%X” -> 16진수)
이를 지시자 라고한다.
@주로 쓰이는 printf()의 지시자(1/3)
지시자
%b 불리언(boolean)형식으로 출력.&&&&&&&&
%d 10진(decimal) 정수 형식으로 출력 &&&& 이 4개는 정수
%o 8진(octal) 정수의 형식으로 출력 &&&&&&&&
%x, %X 16진(hexa - decimal) 정수의 형식으로 출력&&&&
%f 부동 소수점(floating - point)의 형식으로 출력 ####이 두개는
%e, %E 지수(exponent) 표현식의 형식으로 출력#########실수
%c 문자(character)로 출력 @@@@@@이 두개는
%s 문자열(string)로 출력@@@@@@문자 출력
printf에 사용되는 지시자를 모두 확인 가능Java APE -> Formater
System.out.printf(“age:%d year : %d\n”, 14, 2017);
- 이처럼 지시자를 한번에 같이 적용할 수 있고 그만큼 값이 늘어난다.
age의 %d에는 14의 값이 적용되고 year의 %d에는 2017의 값이 적용된다.
-> age : 14 year : 2017
** 또 printf는 줄바꿈이 없으므로 지시자에 \n(개행문자)를 사용하여 줄 바꿈을 한다.
@@printf()의 지시자(2/3)
-
정수를 10진수, 8진수, 16진수로 출력
System.out.printf(“%d”, 15; // 15 10진수
System.out.printf(“%o”, 15; // 17 8진수
System.out.printf(“%x”, 15; // f 16진수
System.out.printf(“%ㄴ”, Integer.toBinarySting(15); // 1111 // 2진수 자주 쓰이진 않음 -
8진수(0)와 16진수(0x)에 접두사 붙이기
System.out.printf(“%#o”, 15; // 017 8진수
System.out.printf(“%#x”, 15; // 0xf 16진수
System.out.printf(“%#X”, 15; // 0xF 16진수 -
실수 출력을 위한 지시자 %f - 지수형식(%e, 간략한 형식(%g)
Float f = 123.4567890f;
System.out.printf(“%f”, f); // 1234.456787 (float타입의 경우 정밀도가 7자리이여서 다음숫자는 정확하지 않는다)
따라서 float보다 정밀도가 좋은 double을 사용하는 것이 좋다
System.out.printf(“%e”, f); // 1234.4568e+02