728x90
Binary Text 실습

 

//Q. 69를 10진수, 2진수, 8진수 , 16진수로 출력해보자

        int decimal = 69;
        System.out.println("decimal = " + decimal);
        
        int binary = 0b01000101; //2진수에는 0b를 붙여준다.
        System.out.println("binary = " + binary);
        
        int octal = 0105; //8진수에는 0을 붙여준다
        System.out.println("octal = " + octal);
        
        int hexa = 0x45; //16진수에는 0x를 붙여준다.
        System.out.println("hexa = " + hexa);


API의 도움을 받아서 숫자를 변환해볼 수 있다.

toBinaryString(data) → 해당 메서드를 사용하면 int 값을 2진수로 변경해준다. 이후 변경된 값을 String binary에 담아 출력해보았다. toOctalString → 8진수로 변환해주는 메서드 toHexString → 16진수로 변환해주는 메서드

charTest / 아스키 코드에 대해서 이해해보자
아스키 코드에서 몇가지 숫자만 외워두고 앞뒤로 더해서 기억하면 된다

‘0’ = 48 / ‘a’ = 97 / ‘A’ = 65

 

public static void main(String[] args) {

        //Q. '가'라는 한글 한 문자를 변수에 저장하고 출력하시오.
        char a = 'A';
        System.out.println("a = " + a);
        int a1 = 'A';
        System.out.println("a1 = " + a1);
        System.out.println("a1 = " + (char)a1);
        //char 자료형은 2byte로써 4byte인 int 자료형에는 담길 수 있다.
        //단 아스키코드표에 있는 숫자형으로 변경되어 저장된다.
        //char 자료형을 문자 그대로 출력하고 싶을 땐 변수 앞에 (char)를 기입하여 형변환을 진행해준다.
        
        //Q. 대문자 'A'를 문자 'a'로 변환하여 출력하시오 (아스키코드참고)
        char upper = 'A';
        char change = (char) (upper + 32); //'a'
        //알파벳 대문자 아스키코드의 숫자와 소문자에 해당하는 숫자의 차이가 32이기 때문에,
        //대문자 아스키코드 숫자에서 +32를 하면 소문자가 / 소문자의 숫자에 -32를 하면 대문자로 바꿀 수 있다.
        System.out.println("upper = " + upper);
        System.out.println("change = " + change);

       //Q. '1' + '2' = 3이 나오도록 프로그래밍 해보자
        int z = '1'; //49
        int x = '2'; //50
        int sum = (z-48)  + (x-48);
        System.out.println("sum = " + sum);
    }

 

형 변환 (Casting) - 값의 타입(DataType)을 다른 타입으로 변환하는 것
(변환할 DataType)변수; → 해당 문법과 같이 작성한다.

 

자동 형변환 (묵시적) : 작은 type이 큰 type에 저장되는 경우 (예 : byte → int) 강제 형변환 (명시적) : 큰 type이 작은 type에 저장되는 경우(예 : int → byte, 손실발생) / 타입을 강제로 맞춰야하는 것이 강제 형변환 ** boolean type은 형변환이 안된다.

ex) int(4byte) → char(2byte) 형변환 = (char)65 → ‘A’

ex) float(4byte) → int(4byte) 형변환 = (int)2.6f → ‘A’ 여기서 float는 2.6 소수점이 있지만 int는정수형으로서 소수점 아래는 잘려서 출력된다. 이 때, 2(손실)의 값 손실이 발생하게 된다.

 

public class CatstingTest {
    
    public static void main(String[] args) {
        
        float f1 =.10f;  // 0.10
        System.out.println("f1 = " + f1);
        
        float f2 = 15f; // 15.0
        System.out.println("f2 = " + f2);
        
        float f3 = 3.14f;
        System.out.println("f3 = " + f3);

        double d1 = 123.4567;
        System.out.println("d1 = " + d1);

        float x = 15.6f;
        int y = (int)x;
        
        실수형 데이터가 정수형 데이터에 저장하려면 (int)로 강제형변환을 진행해야 함
        강제 형변환 시 값 손실이 발생한다.
        
        System.out.println("y = " + y);

        char c = 'A';
        int cc = c;
        System.out.println("cc = " + cc);
        
        c는 2byte, cc는 4byte로 수치형 자료로 서로 호환이 가능하기 때문에,
        자동형변환이 가능하며, 값 손실이 발생하지 않는다.
        
    
    }
}

 

728x90
반응형

+ Recent posts