mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, April 19, 2007

Java 자바] int를 unsigned 형 long으로 변환 캐스팅(Typecasting) 함수


자바의 32비트 정수형인 int는, "signed int" 즉, 플러스/마이너스 부호가 있는 정수입니다. 자바에는 char형만 unsigned형입니다. 그 외에는 unsigned형이 없습니다.

예를 들어, int에 들어 있는 -1 이라는 숫자를, unsigned형으로 표현하면 4294967295 가 되는데, 이런 변환 작업을 자바에서 하려면 아래 예제의 unsigned32() 라는 메소드(함수)를 사용하면 됩니다. 자바에서는 unsigned형으로 형변환(Typecasting)하는 캐스트 연산자가 제공되지는 않습니다. unsigned형 자체가 없기에...

자바의 int에는 2147483647 이상의 숫자를 넣을 수 없으므로, unsigned32()는, int가 아닌 long형으로 반환합니다. (물론 자바의 long형도 unsigned형은 없지만, 64비트 정수이기에 천문학적인 정수를 대입할 수 있습니다.)

비트 연산: unsigned int (unsigned long) 로 변환


예제 소스 파일명: Example.java
※ 아래 박스 클릭 후, 키보드 화살표 키로 좌우 스크롤 가능함
public class Example {
  public static void main(String[] args) {

    System.out.println( unsigned32(-1) );   // 4294967295
    System.out.println( unsigned32(-2) );   // 4294967294
    System.out.println( unsigned32(1) );    // 1
    System.out.println( unsigned32(0));     // 0

    System.out.println( unsigned32(0xFFFFFFFF) );  // 4294967295 (부호 없는 32비트 int형의 최대값)
    System.out.println( unsigned32(0x7FFFFFFF) );  // 2147483647 (부호 있는 32비트 int형의 최대값)

    System.out.println( unsigned32(0x7FFFFFFF - 1) );  // 2147483646
    System.out.println( unsigned32(0x7FFFFFFF + 1) );  // 2147483648
  }


  // int를, unsigned형 long으로 변환 메서드
  public static long unsigned32(int n) {
    return n & 0xFFFFFFFFL;
  }


}



참고: ▶▶ C 언어] signed int 를, unsigned int 로 상호 변환, 캐스팅




tag: java
자바 | Java

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top