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

정수를 2의 보수하는법

0 추천
안녕하십니까

다름이 아니라

 

c에서는 정수를  ~175+1 하면 2의 보수로 값이 변경되는데요.  81로

자바에서는 이렇게 하면 -175로 변경되는데

 

175가 1010 1111 인데

2의 보수를 하면

0101 0000 에서 +1 을 더해서  0101 0001

이걸숫자로 하면 81이 맞지않나요

왜그런거죠?
흠바바 1 (4,000 포인트) 님이 2014년 12월 12일 질문
흠바바 1님이 2014년 12월 12일 수정

1개의 답변

0 추천
C에서 char 는 1byte입니다.

175는 -81이고 2의 보수를 취하면 81이 나오죠.

Java에서 char는 2byte입니다.

0000 0000 1010 1111 을 2의보수를 하면 1111 1111 0101 0001이 됩니다.

즉 -175가 되는것이죠.

 

그러면 결론은 Java에서 81이 나오게 하고 싶으면 어떻게 해야하나?

답은 byte를 쓰시면 됩니다.
q1212 (26,020 포인트) 님이 2014년 12월 12일 답변
...