2-4. char, 16진수변환, 실수타입
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);
Author And Source
이 문제에 관하여(2-4. char, 16진수변환, 실수타입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hoan0418/2-4.-char-16진수변환-실수타입저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)