[Java] 부호 없는 자료형

in_ho_·2023년 10월 24일
0

Java

목록 보기
2/3
post-thumbnail
  • Java에서의 자료형은 크게 둘로 나눌 수 있습니다.
    1. 기본 자료형
      • 값을 직접 가짐.
    2. 참조 자료형
      • 값을 가진 인스턴스의 참조 주소를 가진다.

1. 기본 자료형

자료형크기(bit)기본값
byte80
short160
int320
long640
float320.0
double640.0
char16\u0000(공백문자)
boolean1false
  • 기본 자료형에서 주의할 점은 자료형의 범위를 넘더라도 오류가 발생하지 않는다.는 것입니다.
    • 양수라면 음수로, 음수라면 양수로 자동 변환되기 때문입니다.
    • 이를 오버플로우라고 합니다.

1-2. 부호 없는 Integer, Long

  • 우리가 Integer나 Long을 사용할 때 음수의 값을 사용하지 않는데 자료형의 범위로 지정되어 있다면 이를 낭비라고 생각할 수도 있을 것입니다.
  • Java 8 이후로는 int와 long에서 부호 없는 값을 가질 수 있게 되었습니다.
    • 부호가 없다는 말은 음수값을 가지지 않는다.는 뜻입니다.
        int i = Integer.MAX_VALUE;
        System.out.println("Integer의 최대값 : " + i);

        String maxIntegerValue = Integer.toUnsignedString(i + 1);
        System.out.println("toUnsignedString을 이용하여 Integer 최대값 + 1 확인 : " + maxIntegerValue);

        i = Integer.MAX_VALUE + Integer.MAX_VALUE + 1; /* 1을 더 더하면 0으로 바뀜  */
        maxIntegerValue = Integer.toUnsignedString(i); 
        System.out.println("toUnsingerString을 이용하여 overflow 확인 : " + maxIntegerValue);


        long l = Long.MAX_VALUE;
        System.out.println("Long의 최대값 : " + l);

        String maxLongValue = Long.toUnsignedString(l, i);
        System.out.println("toUnsignedString을 이용하여 Long 최대값 + 1 확인 : " + maxLongValue);

        l = Long.MAX_VALUE + Long.MAX_VALUE + 1; /* 1을 더 더하면 0으로 바뀜  */
        maxLongValue = Long.toUnsignedString(l, i);
        System.out.println("toUnSignedString을 이용하여 overflow 확인 : " + maxLongValue);
  • Integer와 Long 클래스의 toUnsignedString을 호출하면 int와 long 값의 부호 없는 문자열 표현을 얻을 수 있습니다.

0개의 댓글