JAVA 정수형 데이터 타입과 ASCII코드(16진수)

하히호호·2024년 3월 27일
0

데이터 타입

java는 변수를 입력할때 변수 타입을 함께 선언합니다.
java는 타입에 맞춰 메모리를 할당합니다.

데이터의 크기

대단한 일을 척척 진행하지만, 사실 이 안에서는 1,0으로 기록하고 데이터를 주고 받습니다. 스위치를 생각하면 됩니다.

가장 작은 단위인 bit0 또는 1로만 표현할 수 있습니다.

단 2가지의 표현법을 가진 bit를 8개로 묶어놓은 단위를 byte라고 합니다.
1byte는 8bit의 공간을 의미합니다.

정수형 데이터 타입과 메모리

정수형 데이터 타입은 byte , short, int, long이 있습니다.

코드로 더 정확하게 알아보자.
대전제 : 정수가 들어오면 int형으로 자동 형변환이 된다.

byte 타입

public class Main {
    public static void main(String[] args) {
        byte i = 1;
        System.out.println(i);
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);
    }
}

결과
1
127
-128

short 타입

public class Main {
    public static void main(String[] args) {
        short i = 12312;
        System.out.println(i);
        System.out.println("short타입 최대값: "+Short.MAX_VALUE);
        System.out.println("short타입 최소값: "+Short.MIN_VALUE);
    }
}

결과
12312
short타입 최대값: 32767
short타입 최소값: -32768

int 타입

public class Main {
    public static void main(String[] args) {
        int i = 12312;
        System.out.println(i);
        System.out.println("int타입 최대값: "+Integer.MAX_VALUE);
        System.out.println("int타입 최소값: "+Integer.MIN_VALUE);
    }
}

결과
12312
int타입 최대값: 2147483647
int타입 최소값: -2147483648

보통 정수타입은 int형을 많이 사용한다.
때문에 대략적으로 int형의 범위를 알아야하는데 +-21억이다.

long 타입

public class Main {
    public static void main(String[] args) {
        long i = 12312L;
        System.out.println(i);
        System.out.println("long타입 최대값: "+Long.MAX_VALUE);
        System.out.println("long타입 최소값: "+Long.MIN_VALUE);
    }
}

결과
12312
long타입 최대값: 9223372036854775807
long타입 최소값: -9223372036854775808

ASCII 코드

ASCII코드를 알려면 2진수와 16진수를 알고 넘어가야 한다.

2진수 16진수 변환

일반적으로 10진수를 사용하지만 컴퓨터 안에서는 2진수 혹은 16진수를 많이 사용합니다.
위에서 말했듯 컴퓨터의 가장 작은 단위인 bit는 스위치 전원과 같이 0과 1로만 표현할 수 있습니다.
bit하면 경우의 수를 먼저 떠올리자.

  • 4bit(16)의 자리
    1bit : 1
    2bit : 2
    3bit : 4
    4bit : 8
    예를 들어 1001 > 8+0+0+1 =9 이다.

4bit는 16진수의 한자리 수이다.

컴퓨터에 16진수로 된 표현들을 보면 0xf 이런 식으로 되어있다.
(참고) 앞쪽에 0x라고 붙인 것은 프리픽스라고 하는데 16진수를 나타내는 것이다.

우리는 이제 반대로 유추할 수 있다.
0xf4
16진수를 표현했구나 > 2자리 수이네? > 8bit를 사용하는 것 같다.
16진수 표기가 사용되는 예로는 색상(RGB),메모리 값, 컴퓨터 하드웨어 주소 표현 등이 있습니다.

다시 위에 아스키 코드표를 보자.

컴퓨터/통신 장비에서 문자나 기호를 숫자로 표현하는 표준화된 방법을 뜻한다.
표준화는 일관성 유지를 위해서 등장한다.
표준을 만들어 어느 제조회사에서든 같은 표현 문자를 보내는 것입니다.

코드로 아스키 코드 10진수로 출력

public class Main {
    public static void main(String[] args) {
        System.out.println("문자형 char ");

        char c = 'A';
        System.out.println("char의 10진수: "+(int)c);
    }
}

결과
문자형 char
char의 10진수 :65

10진수로 아스키 코드 출력

public class Main {
    public static void main(String[] args) {
        System.out.println("하이"  +(char)13 + "하이");
    }
}

결과
하이
하이

16진수 10진수로 변환

public class Main {
    public static void main(String[] args) {
        System.out.println("-"+0xf4+ "-");
    }
}

결과
-244-

profile
읽히는 코드를 짜고싶습니다.

0개의 댓글