signed char에 최고 FF가 홀드 되어야 하는데 왜 FFFF가 표시 되는지 궁금합니다
387
4 asked
4.10절 21라인 강의를 듣다가 아래와 같은 시험을 하였습니다.
- 변수 j는 signed char로서 1바이트에 – 128 ~ 127까지를 저장(hold)할 수 있다.
- scanf() 로 -1을 읽어 들이면 마이너스는 2의 보수로 표현하므로 j에 FF가 입력되어야 한다. 그런데 첫번째 printf를 보시면 왜 FFFF가 표시 되는지 모르겠습니다.
2번,3번째 printf는 형식지정자에 맞게 출력 된 것 같기도 합니만, j변수에는 분명 FF가 저장되어 있을 텐데 이해가 가지 않습니다. 그 이후 printf도 마찬가지입니다
Answer 2
0
안녕하세요 :)
질문자님 코드에서 첫번째 printf 와 마지막 printf 코드만 적용하여 실행해본 모습입니다.
(근데 저는 이 코드 런타임 에러가 나던데 질문자님께선 안나셨나요..?)
제 환경에선 첫번째 printf 는 ff 두개만 잘 출력하고 있습니다.
질문자님께선 비주얼 스튜디오 코드를 쓰고 계시는 것 같은데 환경마다 다른게 아닐까 싶습니다..
-
j 를 signed char (1byte)로 설정을 하셨는데 입력은 lld 즉 long long double(8byte) 타입으로 받으셨고 출력도 signed char 인 j 를 다양한 타입으로 출력하고 계십니다. 출력 결과가 다 다른것은 이러한 것에서 비롯된 차이라고 보여집니다. 선언한 변수에 맞게끔 입출력 서식 지정자를 통일시켜주는 것이 좋습니다. 데이터손실이 생길 수도 있고 원하지 않는 결과를 입출력 하게 될 수 있기 때문입니다.
Export template 안됨
1
45
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
70
3
main 함수에서 왜 int만 선언이 되는걸까요
1
63
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
62
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
58
1
프로토타입과 함수간의 인자 불일치
1
81
2
12.12 헤더 관련 질문
1
63
2
Visual Studio Community 2026 사용 문의
1
149
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
65
2
getchar(), putchar()
1
96
3
강의자리ㅛ
1
85
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
119
2
소스파일안에 여러 파일
1
80
2
F5와 F7의 차이
1
82
2
c = TWO * (a+b); 에서 a와 b는?
1
63
2
; 세미콜론을 붙이는 기준에 문의
1
72
1
Step over 기능 문의
1
57
2
2.6 강의 따옴표 출력 규칙 문의
1
81
2
int main 함수 관련 오류 문의
1
71
2
13.4 words[0]
0
64
2
11.7 함수를 구현해 봤습니다.
1
65
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
67
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
57
2
11.6 fit_str함수를 구현해 봤습니다.
1
56
2

