2012-01-31 2 views
3

enter image description here무엇이 오버플로를 나타 냅니까?

임이 질문을하는 중 일부 명확한 도움이 될 것입니다. 오버플로가 정확히 무엇을 의미합니까? 10 진수 표기법으로 변환 할 때 여분의 비트가 필요할 경우? Fro 파트 3은 비트를 2의 보수로 간주합니다. 2의 보수를 찾는 것을 의미합니까? 무리 감사.

답변

3

3의 경우 2의 보수를 찾는 것이 아닙니다. 그는 2의 보수 표기법을 사용하여 부호있는 숫자로 값을 처리하도록 알려줍니다. 이것은 a)의 첫 번째 값이 양수이고 다른 세 개 값이 음수임을 의미합니다.

오버플로의 경우 2와 3에서 다릅니다. 부호없는 숫자 인 2는 부호없는 비트가 발생하면 오버플로가 발생합니다. 3의 2의 보수 부호있는 숫자의 경우 결과의 부호가 올바르지 않으면 오버플로가 발생합니다. 예를 들어 두 개의 양수를 추가하고 결과가 음수이면 오버플로가 발생합니다.

+0

높은 비트는 무엇을 의미합니까? – jfisk

+0

상위 비트가 최상위 비트입니다. –

0

결과 합계가 8 비트 시스템에서 표현할 수있는 것보다 큰 경우 오버플로가 발생합니다. 나는 그것이 255보다 큰 어떤 수 (1 < < 8)라고 생각한다.

귀하의 가정은 "추가 비트"가 대부분 맞습니다. 8 비트 시스템에서 모든 숫자는 8 비트로 저장됩니다. 표현할 수있는 최대 값보다 큰 숫자를 생성하는 연산은 오버플로입니다. 10 진수로 변환 할 때 발생하지 않지만 실제로 이진 값을 사용하여 합계를 계산할 때 발생합니다. 모든 숫자가 8 비트 인 경우 더 큰 숫자를 저장할 필요가있을 때 추가 비트를 추가 할 수 없습니다.

예, "2의 보수"는 "2의 보수"와 같습니다. 나는 당신이 철자를 쓰는지 또는 숫자를 사용하는지 사이의 어떤 구별도 알지 못한다.

2

당신이 X와 y를 추가하는 결과를 얻을 미만인 경우 X 또는 미만 Y 다음 또한이 (랩 - 주위)이 초과되었습니다.

관련 문제