2013-12-18 3 views
1

내가 말을 수정 있습니까 서명 부호없는 정수의 표현은 다음과 같습니다기계 레벨이

  • unsigned int의 변수는 음수가 아닌 정수 2의 보수를 사용하여 표현하는 전체 32 비트를 가지고. 따라서 유지할 수있는 정수의 범위는 0에서 (2^32) - 1입니다.

  • int의 변수는 32 비트를 사용하여 정수를 나타내는데 2의 보수를 사용합니다. (2^31) (2^31) - 투 - 따라서 수용 할 수있는 정수의 범위는 1.

즉, 난 대답이 워드 크기가 32 비트 인 시스템의 상황이다.

+3

어느 쪽도 맞지 않습니다. –

+0

int가 아키텍처에 32 비트이면 맞습니까? – rozina

+2

부호없는 부호는 2의 보수 부호를 사용하지 않습니다. 필요 없음. –

답변

6

아마도 대다수 일 것입니다. 그러나 C 표준은 int이 최소 16 비트 크기의 부호있는 정수이고, unsigned int은 최소 16 비트 크기의 부호없는 정수 여야합니다.

참조 : 특히 http://en.wikipedia.org/wiki/C_data_types

:

INT 유형은 타겟 프로세서가 작업을 가장 효율적이라는 정수형이어야한다. 예를 들어, 모든 유형이 64 비트 일 수 있습니다. 그러나 몇 가지 다른 정수 너비 스키마 (데이터 모델)가 널리 사용됩니다. 이는 데이터 모델이 서로 다른 프로그램이 통신하는 방법을 정의하고 주어진 운영 체제 응용 프로그램 인터페이스 내에서 통일 된 데이터 모델이 사용되기 때문입니다.