2-4. char, 16진수변환, 실수타입

23812 단어 22/4/1222/4/12

S : static으로 되어있다

--------------char-------------

//문자 변수 처리 = 숫자로 저장된다. 음수가 없다


public class CharExample {


//main 메모리로 올라가야 실행가능 / static

//void 아무것도 없다// String 타입 // [] 배열 //args 변수이름 <- 데이터를 받으려고 선언한것이다

public static void main(String[] args) {


char c1 = 'A'; //문자를 직접 저장

char c2 = 65; //10진수로 저장

char c3 = '\u0041'; //16진수로 저장


//10진수 00000000 -> 65 -> 01000001

//16진수 0000/0000 4개씩 운용 1,2,4,8 / 1,2,4,8 -> 0100 / 0001 -> 4/1


System.out.println(c1 + 1); //char 는 정수타입가능 바로 계산된다


char c4 = '가'; //문자를 직접 저장

char c5 = 44032; //10진수로 저장

char c6 = '\uac00'; //16진수로 저장


// 자동캐스팅 같은타입이다 char는 int 타입이다~

int uniCode = c1; //유니코드 얻기

// 숫자


System.out.println(c1);

System.out.println(c2);

System.out.println(c3);


System.out.println(c4);

System.out.println(c4 + " : " + ((int)c4));


System.out.println((char)(c3+1)); //유니코드를 +1 하고 char 문자로 바꿔 표현


System.out.println(c5);

System.out.println(c6);


char c7 = ' ';

System.out.println(c7 + " : " + ((int)c7)); //


short s = (short)c7;

// short 는 2바이트 중 1바이트는 마이너스값을 씀

// char 는 양수만 들어간다 -> 강제 캐스팅 필요

// int 는 char 그대로 들어감 음수를 써도 양수 값이 char 값을 포함시킬수있음


System.out.println(uniCode); //

System.out.println((int)c1); //강제캐스팅


System.out.println((char)(c1 + 1)); //캐스팅


char c12 = 'a';

System.out.println(c12 + " : " + ((int)c12));

// 문자열 로 만들어짐 + (숫자로 먼저계산)이후 문자열로 출력됨

// 산술연산이 들어가면 () 가 꼭 들어가줘야함


//문자열 -> 문자의 배열 -> 문자 여러개 --> String (4억자) //참조형 타입이다

//기본형타입 =소문자로 시작 // 참조형 타입 = 대문자로 시작 = 클래스

//기본형 변수 = 리터럴 // 참조형 변수 = 주소를 저장 객체를 참조할 주소를 저장해둔다


//String이라는 클래스안에 여러 메소드들이 저장되어있다 / 만들어져있는것을 가져다 쓰는게 API 이다

// 클래스 이름도 변수로 설정 가능

-------------------------- 8, 16진수변환------------------

public class IntExample {


public static void main(String[] args) {

// TODO Auto-generated method stub




//000 - 값은 7 >>> 8진수

//0000 - 값은 15 >>> 16진수


//리터럴 데이터 10 =>2진수 변환 : 1010 -> 3개씩 묶음 8진수 : 012 ->

//4개씩 묶음 16진수 0~9,a,b,c,d,e,f : 0xA


int var1 = 10; //10진수로 저장

int var2 = 012; //8진수로 저장 - 앞에0 붙여줘야함

int var3 = 0xA; //16진수로 저장 - 앞에 0x 붙여줘야함


//int 로 두면 알아서 10진수로 변환됨


System.out.println(var1 + "," + var2 + "," + var3);

System.out.println(var2);

System.out.println(var3);


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


*10 진수 를 여러 진수로 출력방법

System.out.println(var1 + " 2진수출력 : " + Integer.toBinaryString(var1));

System.out.println(var2 + " 8진수출력 : " + Integer.toOctalString(var2));

System.out.println(var3 + " 16진수출력 : " + Integer.toHexString(var1));


//메인 메소드() 안에 처리문이 들어간다

//Integer 라는 클래스 에가 면 () 안에 처리문을 넣어야함 (var1 을 넣은 이유) 
//[미리 만들어놓은 클래스를 당겨쓰는것이다 ]

Integer 는 클래스 = 참조형 타입 //

결국 당겨쓰는 방식이 API 방식이다


}


}


//t,f 저장할수있는 타입 boolean / 1byte / 최소저장단위 1byte

boolean stop = true; //조건문과 함께 많이 사용하나. 맞으면 true, 틀리면 false


//stop == true 생략 가능 -> true 일시 if 다음의 것을 실행 /명령문이 하나면 {} 없이 쓸수있음

//조건문 안에 !는 반대를 의미한다

if(stop) {

System.out.println("중지합니다");

} else {

System.out.println("시작합니다");

}



Integer.bitCount() 로 사용

------------------------------------- 실수

//실수값 저장

double var1 = 3.14; //print((int)var1); 314 출력 소수점 없어짐(형변환 사용)casting 사용


//float var2 = 3.14; //컴파일 에러(Type mismatch) F를 꼭 붙여줘야함

//기본적으로 소수점있으면 무조건 double타입으로 인식

// var3 = (float) 3.14; -데이터에 직접 형변환 가능

// print(var3 + 2);

//5.1400003 나누기 값이 끝까지 안나눠져서 마지막 자리수에 표현 가능한 숫자가 나옴

// 2진수로 저장했다 10진수로 다시 꺼내올떄 숫자가 달라짐



float var3 = 3.14F;

var3 = (float) 3.14;

System.out.println(var3 + 2); //float 타입으로 연산됨

var3 = (float)var3; // int 와 연산해도 float 타입으로 연산됨



//정밀도 테스트

double var4 = 0.1234567890123456789;

float var5 = 0.1234567890123456789F;


System.out.println("var1:" + var1);

System.out.println("var3:" + var3);

System.out.println("var4:" + var4);

System.out.println("var5:" + var5);


//e 사용하기

int var6 = 3000000;

double var7 = 3e6;

float var8 = 3e6F;

double var9 = 2e-3;

System.out.println("var6:" + var6);

System.out.println("var7:" + var7);

System.out.println("var8:" + var8);

System.out.println("var9:" + var9);

좋은 웹페이지 즐겨찾기