진수 변환 공부를 하고 있습니다 문득 궁금해진것이 2진수의 경우 맨 앞의 자리를 부호를 정하기 위한 자리로 남겨두는것으로 알고 있습니다. 16진수를 예를 들어 2진수로 변환 할경우 A23 = 1010 0010 0011 라는 값이 나오는데 2진수 맨앞의 1은 음의 숫자 인것으로 알고 있습니다. 1010 앞에 부호를 정해주는 자리가 생략 된것인가요?
# 0xA23은 실제로 0x0A23 입니다. 따라서, 부호영역은 숨겨진 나머지 비트영역에 나타나게 됩니다. ``` // 0x0A23 0000 1010 0010 0011 ``` ## 자바의 정수 표현 추가로 자바에서 정수는 아래와 같은 단위로 나타냅니다. + long(8 bytes) + int(4 bytes) + short(2 bytes) + byte (1bytes) 이들 중 십육진수 `0xA23`을 나타낼 수 있는 단위는 long, int, short입니다. 따라서 아래와 같이 표현할 수 있습니다. ``` // long 0000 0000 0000 0A23 // int 0000 0A23 // short 0A23 ``` ## 레퍼런스 + java hex string to binary (https://goo.gl/HSqoJf) + java long size in bytes (https://goo.gl/qkq1ik)