Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

char와 unsigned char의 차이점.

2,753 views
Skip to first unread message

TheOne

unread,
Apr 4, 2008, 1:05:45 AM4/4/08
to
char 와 unsigned char의 차이가 뭔가요? 왜 구분이 되어 있는건가요?

예제를 짜 봤는데, 차이점이 없습니다. 어떻게 하면 차이점을 볼 수 있을까요?

int main(int argc, char* argv[])
{
char a;
unsigned char b;
a = 52;
b = 52;
printf("%c %x %c %x\n", a, a, b, b);

a = 'a'; b = 'a';
printf("%c %x %c %x\n", a, a, b, b);

a = 280;
b = 280;
printf("%c %x %d %c %x %d\n", a, a, a, b, b, b);
return 0;
}

--
D

stardust

unread,
Apr 5, 2008, 9:29:55 PM4/5/08
to
On 4월4일, 오후2시05분, TheOne <daewon.y...@gmail.com> wrote:
> char 와 unsigned char의 차이가 뭔가요? 왜 구분이 되어 있는건가요?

char에는 음수가 들어갈 수 있지만 unsigned char에는 음수가 양수로 변환이 되지요.

왜 구분이 되어있는지에 대해 자세한 답변은 다른 고수님들께서 해 주실 겁니다.

일단 char는 -128 ~ 127까지 숫자를 사용할 수 있고,

unsigned char는 0 ~ 255까지 숫자를 사용할수 있습니다.

>
> 예제를 짜 봤는데, 차이점이 없습니다. 어떻게 하면 차이점을 볼 수 있을까요?

#include <stdio.h>

int main()
{
char a;
unsigned char b;

a = -35;
b = -35;

printf("%c 0x%x\n", a, a);
printf("%c 0x%x\n", b, b);
printf("\n");
printf("a=%d, b=%d\n", a, b);
}

결과)
▒ 0xffffffdd
▒ 0xdd

a=-35, b=221

TheOne

unread,
Apr 11, 2008, 12:34:11 AM4/11/08
to
답변감사. 그럼, unsigned인지 signed인지는 16진수나 문자를 지정해서 변수에 집어 넣을 경우에는 상관이 없는 거
고, 오직 10진수 음수값을 넣을 경우에만 차이가 나는 건가요?

--
D

Shrenn.Hann

unread,
May 13, 2008, 12:58:29 AM5/13/08
to
> D- 따온 텍스트 숨기기 -
>
> - 따온 텍스트 보기 -


컴퓨터에서 음수를 인식하는 방법이 없습니다. 그래서 양수를 음수라고 표기하고 음수처럼 사용할 뿐이죠.

stardust 님께서 설명하신글을 보시면 -128~127, 0~255 자릿수까지 기억가능하다라는 글을 보셨을텐데

생각해보면 2^8승은 256 이죠? 한자리를 부호bit 즉 0-양수 1-음수 로 예약해있기 때문입니다. 그래서 총 사용가능한 경
우의 수가 저렇게 나오는것이지요

보수 개념을 생각하시면 쉽게 이해 가능하시리라 생각합니다.

보수 로 검색해보세요
0 new messages