마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 자료형 타입에 대해서

0 추천
기존 C에서 쓰던 Unsigned short 데이터 타입을 안드로이드 적용을 하려고 보니 인터넷에서는 자바에서는

unsigned 타입이 적용이 되지 않는다고 합니다.

 

 unsinged 타입 0~65534 만큼의 자료형을 선언하고 싶은데요

안드로이드에서는 어떻게 해야하나요?
freekeno (260 포인트) 님이 2015년 1월 29일 질문

1개의 답변

+1 추천
어떤이유로 구지 0~65535 자료형을 사용하시려는지 혹시 알수 있을까요?

질문글에 또 질문만 하고 끝내는건 별로 좋은 경우는 아니겠군요...

도움이 되실지 모르겠으나 예전엔 하드웨어적으로 자원환경이 열악했습니다. 그러다보니 byte 단위로 끊어서 메모리를 사용하되 그 조차도 좀 더 효율적으로 사용할 필요가 있었고 그래서 언사인드 타입같은것도 썻었다고 알고 있습니다. 여기서 한발 더 나가 1 byte 조차 어떤 정보를 담기에 크다고 느껴질땐 비트와이즈 방식으로도 처리하곤 했었지요...

하지만 요즘은 시스템자원이 예전처럼 그렇게까지 모자라진 않지요... 더욱이 플랫폼등도 같이 발전을 하여 GC 등을 통해 최대한 개발자들이 원하는 자원들을 공급해주려하고, 또 이러한 처리들을 충분히 처리할 수 있을만큼 cpu 도 발전을 했지요... 그래서 한번에 액세스하는 단위에 맞춰 변수형을 잡는것이 속도적으로 더 이득이기 때문에 자원이 조금 낭비되더라도 그냥 4바이트씩 끊어서 처리하는쪽으로 무개가 실린것으로 알고 있습니다.

결론은 특별한 이유가 없으시다면 꼭 언사인드타입을 사용하실 필요까진 없으시지 않나 싶습니다.

여담으로 그럼 실수의 경우 왜 아직도 float 과 double 을 같이 사용하는지는 좀 다른 문제입니다.(음.. 다른게 맞나? ㅎㅎ;;;) 저도 학교나 학원 선생님은 아닌지라... 암튼 요건 단정밀, 배정밀 등등 시간나실때 관련내용 찾아보시면 나름 잼납니다~
비애천사 (12,090 포인트) 님이 2015년 1월 29일 답변
언사인드 타입을 써야하는 이유가 있어서 질문드리는 사항입니다.

파일을 까보는데 언사인드 타입으로 파일이 적재 되어있어서요 그냥 short 이나 말씀해주신 byte 단위로 넣으니 음수타입으로 바껴버려서 문제입니다.
뭔가 느낌이 낯설지않아 다시보니 아까 random access file 물어보신분이시군요...
제가 이전 답변드릴때 예제를 너무 설렁설렁 작성했었네요...
이전 글 답변에 제가 시프트 연산을 이용해 2바이트를 더하여 int 형 변수에 넣으시면 된다고 했었는데요...
예를들어 10진수 129의 경우( 2진수로는 10000001이죠...)
그냥 int 에 넣으면 음수가 되어버릴겁니다.
투바이트에 각각 이걸 넣으면 10진수로 33153이군요 이걸로 예를 들어보겠습니다.
byte[] x = {(byte) 129, (byte) 129};
int b = (x[0] & 0x000000FF);
b += (x[1] & 0x000000FF)<<8;

33153(10진수) 을 byte[] 에 넣었고, 이를 다시 int 형 변수에 복구해 넣었습니다.
위 코드를 조금 손봐서 간단한 함수로 만들어 사용하셔도 좋겠지요... 답변이 돼었는지 모르겠습니다. ^^
...