2015-01-30 1 views
2

많은 기사를 읽었으므로 대답은 2s complement입니다. 그들은 나를 많이 도왔다. 그러나, 2s complement에 대한 내 마음에는 의심의 여지가 거의 없습니다.2s는 음수를 저장하는 방법을 보완합니까?

1) 조작을 쉽게하거나 다른 응용 프로그램을 만들기 위해 음수를 저장하는 방법은 2s complement입니까?

2) 컴퓨터에 음수가 표시되면 2s complement이 자동으로 생성됩니까?

3) 2s complement은 컴파일러의 직무이거나 프로세서에 의해 수행 되었습니까?

4) 컴파일 타임에 2s complement을 가져 오면 변수에 값을 할당 할 때 또는 런타임에? 내가 읽은

기사이 (2s complement 더 잘 이해하는 것이 좋습니다한다)은 다음과 같습니다

What is “2's Complement”?

Why is two's complement used to represent negative numbers?

http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html

답변

3

1) 예에서 계산 될 수있다.

2) 컴퓨터가 음수를 "인식"할 수 없습니다. 이진 데이터 청크를 볼 수 있습니다. 귀하의 응용 프로그램은 "이 이진 데이터의 청크는 2의 복잡성에 저장된 정수"라고 말하는 인텔리전스를 가지고 있습니다. 그러나 세계의 거의 모든 CPU는 2의 보수 연산을 지원합니다.

3) 컴파일러는 int32_t x = 0;과 같은 소스 코드를보고이 변수가 2의 보수 형식으로 저장된다는 것을 알고 있습니다.x = x - 1과 같은 코드를 추가하면 컴파일러는 프로그램을 생성 할 때 2의 보수를 지원하는 프로세서 명령어를 사용하기로 선택합니다. 프로세서는 프로그램이 지시 한 대로만 수행합니다. 그것은 지능이 없다.

4) 위에서 설명한 것처럼 컴파일 타임 결정입니다. ("보완 된 것"으로 무엇을 의미하는지 확신 할 수 없습니다 ...)

2

는에 음수를 저장하는 방법을 보완 2S인가 작업을 쉽게하기 위해서?

예는 컴퓨터가 음수를 볼 때

2 초 보완 자동으로 촬영 수 (단지 음수가 부정적이고 긍정적 인 숫자를) 서명 저장할 수있는 방법 중 하나입니다?

음수 -> 서명. 아키텍처에 따라 다릅니다. 하나는 1s, 2s 또는 다른 표현을 선택할 수 있습니다.

2의 보수는 컴파일러의 직무 또는 프로세서에 의해 수행 되었습니까?

컴파일러는 시스템을 이해해야하며 프로세서는 2s 보완 시스템을 이해할 수도 있고 이해하지 못할 수도 있습니다.

컴파일 타임에 2를 보수 할 때, 실행 시간 또는 변수에 값을 할당 할 때?

2 초 보완은 (실행 컴파일) 모든 단계

+0

왜 우리는 양수로 2의 보수를 취합니다. 이익이란 무엇입니까? – Ankit

+1

2의 보수는 숫자를 나타내는 방법입니다. 양수는 그대로 남아 있고 음수는 2의 보수 규칙에 따라 (영리하게) 보완됩니다. –