서명 된 적분 유형에 대한 서명은 어디에 저장됩니까? (자바에서)

StackOverflow https://stackoverflow.com/questions/1670688

  •  13-09-2019
  •  | 
  •  

문제

예를 들어 Java Data Type Byte는 스토리지의 단일 바이트에서 데이터를 -128에서 127까지 보유합니다. 0에서 127까지 -1에서 -128 사이의 Distingush를 가능하게하려면 데이터 유형을 할당 된 스토리지를 사용하는 추가 데이터가 필요합니다. 틀림없이 그것은 단지 1 비트 만 필요하지만 여전히 끝납니다.

Java는 이것을 어떻게합니까?

도움이 되었습니까?

해결책

둘의 보완:

원시 유형은 모든 기계와 모든 구현에서 동일하게 정의되며, 두 개의 보수 정수, 단일 및 이중 프레임 IEEE 754 표준 부동 소수점 숫자, 부울 유형 및 유니 코드 문자 숯의 다양한 크기입니다. 유형. -Java 언어 사양 : 소개

당신은 그것을 0에서 255의 정수로 상상할 수 있습니다. 언제나 차수.

더 기술 : 비트를 반전시키고 추가하여 정수가 부정 (긍정적 → 부정적인 또는 그 반대)을 부정 할 수 있습니다 (긍정적 → 음수 또는 그 반대). 이것은 거의 처럼 보완 (단순히 모든 비트를 반전합니다. 따라서 보완 적 보완. 그러나 하나의 보완은 두 개의 다른 0이라는 문제가 있습니다. 이것은 하나를 추가하여 음수 값의 범위를 확장하여 −128..127).

어떤 식 으로든 당신은 표시가 실제로 숫자의 첫 비트에서 "저장된"것이라고 말할 수 있습니다. 따라서 약간의 스토리지가 필요하다는 관찰이 정확합니다. 그러나 a의 숫자 범위 byte (부호를 무시하는 긍정적이거나 부정적) 7 비트 만 있으면 바이트가 다시 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top