부호가 붙지 않는 해석에 관하여 무언가를 알고 싶었다. 맞습니다. 숫자가 부호없는 정수인 경우 이진수를 10 진수로 변환하여 계산 한 값이 정상입니다. 그러나 부호있는 정수의 경우 부호 비트 (msb)가 먼저 표시되고 이진 값이 계산됩니다. 2의 보수를 사용; 계산 된 값은 기호가 표시된 실제 값입니다.부호가있는 부호없는 해석
내가 맞았나요?
부호가 붙지 않는 해석에 관하여 무언가를 알고 싶었다. 맞습니다. 숫자가 부호없는 정수인 경우 이진수를 10 진수로 변환하여 계산 한 값이 정상입니다. 그러나 부호있는 정수의 경우 부호 비트 (msb)가 먼저 표시되고 이진 값이 계산됩니다. 2의 보수를 사용; 계산 된 값은 기호가 표시된 실제 값입니다.부호가있는 부호없는 해석
내가 맞았나요?
네, 맞습니다. 부호있는 정수을 의 2의 보수로 변환하면 십진수 숫자로 변환됩니다. 이것은 사용자가 수행하는 방법입니다. 2의 보수은 인텔 프로세서가 부호있는 정수로 저장하고 계산하는 방법입니다.
참고 : 그러나이 답변은 이 아니며 Intel 머신이 부호있는 정수를 나타내는 방법에 대해서는이 아닙니다. 그것은 일반적입니다.
10 진수로 변환하는 데 사용하는 기술은 실제로 하드웨어에서 사용되는 표현에 따라 다릅니다.
하드웨어 디자이너로 서명 번호를 저장하도록 선택할 수 있습니다 :
이11111111
는-0
및 00000000
+0
)우리 인간은 우리가 선호하는 10 진수 형식으로 읽을 때 해당 '변환'을 사용해야합니다.
대부분 승산을 수행하는 하드웨어를 설계하는 경우 부호있는 정수를 부호 크기 형식으로 저장하는 것이 좋습니다. 표지판과 크기를 별도로 곱하면됩니다. 반면에 2의 보수는 a little unwieldy to multiply, but not much입니다.
물론 2의 보수는 대부분의 하드웨어 (오늘날의 거의 모든 범용 CPU)가 부호있는 숫자를 저장하는 방식입니다. 이것은 추가 케이크의 조각을합니다.
고마워요 @ArjunShankar – user1466594
당신은 2의 보수 곱셈을 절름발이로 할 필요가 없습니다. 하반부는 그냥 정규 곱셈이고 상반부에 몇 가지 트릭이 있습니다. 트릭은 정확히 얼마나 자주 수업 외부에서 필요로하는지 ..). 어쨌든, 곱셈을 위해 최적화 된 정수 (예 : RNS)를 저장하는 부호 크기보다 더 좋은 방법이 있습니다. – harold
@harold - 오른쪽. 제 의도는 이용 가능한 다른 표현들이 있다는 것을 유지하면서 간단한 설명을하는 것이 었습니다. 2의 보수를 멋지게 곱하는 한 가지 방법은 '수정 된 Baugh-Wooley 곱셈기'입니다. 나는 최근에 LEON3 단일 사이클 승수 대신에 드롭으로 그 중 하나를 만들었습니다 :) – ArjunShankar
설명한 것은 부호가있는 2 진 정수를 사람이 읽을 수있는 10 진수 문자열로 변환하는 가장 일반적인 방법입니다.
그러나 이것이 유일한 방법은 아닙니다. 2의 보수 3 비트 값 111을 먼저 "7"로 변환 한 다음 "8"을 빼고 "-1"에 도달 할 수 있습니다.
Thanks @alex :) – user1466594
upvote하고 유용한 답변을 수락 기억하십시오. –
내가 서명 한 케이스는 서명 된 음수에만 적용됩니다. – user1466594
"선택적 접두사가있는 십진수"로 변환하는 경우, 그렇습니다. 그런 식으로 작동합니다. 부호는 개별적으로 쳐다 보며 절대 값 (이 문맥에서는 부호가 없기 때문에 int.minvalue에 존재 * 함)은 10 진수로 변환됩니다. – harold
덕분에 @harold :) – user1466594