나는 하나의 보완에 대해 배웠고, 하나의 보완이 기호 표시 자로 최상위 자릿수를 사용하는 방법을 배웠다. 이진수 110을 1의 보수로 나타내면 -1이됩니다. 그러나 분명히 110은 십진수 6입니다. 여기에서 나는 정말로 혼란 스러웠다. -1 또는 6을 사용하려는 경우 컴퓨터가 어떻게 알 수 있습니까? 감사합니다. .
저는 종이에서 그 방법을 알고 있습니다. 문제는 코드에서 할 때입니다. 바이트 내 이진수 문자열에 저장하기 알고 에 INT에서 가능한 손실 변환을 그리고 난 그 공의의 1의와 난 이유입니다 viceverse 변경하려면 : 호환되지 않는 유형 :이 오류 여기 내 코드의 경우 : import java.util.Scanner:
Public class deci
필자는 (다소) 보완에 익숙하지만 파이썬 2.7과 관련하여 재교육을 사용할 수 있습니다. 왜 ~0b1은 -2으로 인쇄됩니까? 나는 1의 보수가 1을 0으로 변환하고 그 반대도 마찬가지라는 것을 알고 있습니다. 에 0b0 또는 0을 인쇄 할 것으로 예상됩니다. print은 자동으로 바이트 리터럴을 int의 형식으로 변환합니까? 도움을 주시면 감사하겠습니다.
지침 : 가능하면이 십진수를 5 비트 2의 보수 형식으로 변환하십시오. 가능하지 않다면 이것이 왜 그렇게되는지 설명하십시오. 온라인 계산기에 따르면 (16)베이스 (10) : 내가 이해에서 , 진수 긍정적 경우 : 1 단계 : ma 변환 2 진수로 변환합니다. 2 단계 : 패드 0을 원하는 비트 크기로 설정합니다. 1 단계 : 소수점이 부정적인 경우 바이너
여기에 경고가 표시됩니다. 경고는 '정수 변환 결과가 잘림'이라고 말합니다. 그것은 형 변환 (U16)을 제거하더라도 유지됩니다. typedef unsigned short U16;
U16 mask;
mask = ~(U16)(0x8000);
이 경고는 어떻게 해결합니까? 나는 아래의 코드를 사용하여 경고를 제거했지만 올바른 방법은 없는지 확신 할 수