인프런 커뮤니티 질문&답변

현주님의 프로필 이미지
현주

작성한 질문수

홍정모의 따라하며 배우는 C언어

3.5 정수와 실수

부호 있는 정수, 부호 없는 정수

작성

·

439

·

수정됨

1

예를 들어 8비트 2진수

1010 1110 이 있을 때

컴퓨터가 어떻게 맨 앞 비트가 부호비트인지 아닌지 아는 것인가요?

양수 174가 될수도 있고 음수 -46이 될 수 있는데 컴퓨터가 어떻게 그것을 구분하는 것인지 궁금합니다..

답변 1

1

안녕하세요, 답변 도우미 Soobak 입니다.

 

C 언어에서 부호 있는 정수(signed integers)와 부호 없는 정수(unsigned integers)를 구분하는 방법은,
변수의 자료형과 선언에 달려있습니다.

 

예를 들어, C 언어에서 변수를 선언하실 때 int 또는 signed int 는 부호 있는 정수를, unsigned int 는 부호 없는 정수를 나타냅니다.

이러한 변수의 선언에 따라서 컴파일러는 해당 데이터를 적절히 해석하고 처리하게 됩니다.

 

예를 들어, int 혹은 signed int 등으로 선언된 변수는, '부호 있는 정수' 이므로,
부호비트로 사용되는 맨 앞 비트가 0 이면 양수, 1 이면 음수로 해석합니다.

unsigned int 등으로 선언된 변수는, '부호 없는 정수' 이므로,
모든 비트가 값의 크기를 나타냅니다.


혹시, 이해가 안되시거나 어려운 점이 있으시다면 편하게 댓글 남겨주시면 감사하겠습니다.

현주님의 프로필 이미지
현주
질문자

정말 감사합니다!

현주님의 프로필 이미지
현주

작성한 질문수

질문하기