JAVA 4강_printf 문자열 포맷, 형변환

YEONG EUN LEE (Chloe)·2023년 12월 13일
0

JAVA 기초

목록 보기
7/42
post-thumbnail

print포맷형식

포맷역할
%n줄바꿈
%sStrinf 형식으로 출력, %12s 이렇게 입력하면 입력한 숫자만큼 공간을 할당
%dinteger 형식으로 출력, %,d 이렇게 하면 천의 자리에 따라 ,를 찍어줌
%ffloat 형식으로 출력, %.2f 소수점 둘째자리까지 표현, %10.2f 10만큼 공간할당, %10f, %-10f 양수 왼쪽 정렬, 음수 오른쪽 정렬
%tdate, time 형식으로 출력, %tH(시간), %tM(분), %tS(초), %tA(요일), %tB(달), %tY(년)으로 입력, 날짜를 여러번 쓰기 불편하므로 1$로 입력하면 한번에 적을 수 있음. ex)%1$%tA, %1$%tB, %1$%tY, date 한번만 입력할 것
%o8진수 integer 형식으로 출력
%x16진수 integer 형식으로 출력
%bboolean 형식으로 출력
%e지수형식으로 출력

인코딩(Encoding)

인코딩의 정의

문자들이나 기호들을 컴퓨터 프로그램들이 읽을 수 있는 코드로 변환하는 작업

아스키코드 (ASCII - American Standard Code for Information Interchange) : null->0x00, A -> 65, a -> 97
UTF-8 (Universial Coded Character Set + Transformation Format) : 0x0000, \u0000

자바에서 예약어는 모두 소문자로 되어있으며
null -> 어떤 값이 들어있는지 모른다. 어떤 처리를 할 수 없음.
"", '' -> 빈문자열, null과는 다르다.

형변환 (Type Casting)

내가 갖고 있는 형을 다른 자료형으로 변환함.

기본자료형에 대한 형변환
1. 묵시적 형변환 (암묵적 형변환, 업캐스팅) :

  • 숫자자료형에 대해서만 형변환이 가능함.
  • 작은 자료형에서 큰 자료형으로 변환
  • byte -> short -> int -> long (왼쪽에서 오른쪽으로만 가능)
  1. 명시적 형변환 (강제 형변환, 다운 캐스팅) :
  • 큰 자료형에서 작은 자료형으로 변환
  • 조건 : 반드시 캐스트 연산자를 사용 해야함 ex) (변환할 자료형) 변경할 값 (int) 2.45
  • 값 손실이 발생할 수 있음.
    ex)
    int i = 50;
    byte i = (byte) i;

코드

		// [부호 (1bit) + 정수 (63bit) = 64bit = 8byte]
		// -2의 63승 ~ 0 ~(2의 63승 - 1) 
		long ll = 999999999999999999L;
		// 값 손실 발행
		// [부동소수점방식: 부호 (1bit) + 지수 (8bit) + 가수 (23bit) = 32bit = 4byte]
		// -3.4 * 10의 38승 ~ 3.4*10의 38승

		System.out.println(ll);
		f = ll;
		System.out.println(f);
		// 값 손실 발생
		// [부동소수점방식 : 부호(1bit) + 지수(11bit) + 가수(52bit) = 64bit = 8byte]
		//-1.7*10의 308승 ~ 1.7 * 10의 308승
		d = ll;
		System.out.println(d);

결과
결과

내가 입력한 값과 다른 값이 출력된다 ---> 이것이 값 손실

0개의 댓글