[C 초보질문] << 연산자에 대해.
글쓴이: alwaysN00b / 작성시간: 수, 2004/05/19 - 5:57오후
안녕하세요. 초보라.. 검색해 봐도 잘못찾겠더라구요..
char buf;
buf = 24; 이건 00011000 저장이 되죠?
buf = 24 << 1 ; 이건 00110000 이렇게 되죠?
buf = 24 << 356; 이건 어떻게 되나요?
그리고
buf[1] = ((16 << num) & 0xff000000) >> 24; 이건요?
상수(24)가 내부적으로 어떻게 처리 되는지 알고 싶습니다.
(예를 들면 정수형으로처리)
Forums:
직접 해보면 되는 것 아닌가요...?
직접 해보면 되는 것 아닌가요...?
어느 정도 해보고 질문 올린것입니다.분명히 char type의 변
어느 정도 해보고 질문 올린것입니다.
분명히 char type의 변수에 값을 넣었는데
char buf;
buf = (24 << 356);
printf("%x \n",buf);
했을때 뭐가 나올것 같습니까?
ffffff00 이 나왔던것 같습니다. (지금 학교라 결과는 정확히 몇자리 인지 모르겠습니다)
char type 변수를 hex 값으로 출력하는데 2자리 이상 나오는데 이 초보가
궁금 하지 않겠습니까?
언제나 시작
[quote]The result of the shift operation
결과를 예측할 수 없을 것 같습니다. int보다 크게 shift 하지 마세요..
[quote="alwaysN00b"]어느 정도 해보고 질문 올린것입니다.
buf 는 printf 로 넘어갈때 (int) 로 암묵적인 형변환이 일어 납니다.
---
http://coolengineer.com
[code:1][myunggoni@kimjung myunggoni
저는 경고가 나오네요. 그리고 char가 int 형으로 implicit casting
되어서 4 바이트로 나오는 것 같습니다.
비트필드 공용체를 만들어서 테스트해보는 게 어떨까요.
비트 쉬프트에 대해서는 C보다는 어셈으로 공부하는게 더 쉬울거 같네요.
비트 쉬프트에 대해서는 C보다는 어셈으로 공부하는게 더 쉬울거 같네요.
어셈에서 쉬프트가 어떻게 되는지 이해한다면 C에서는 어렵지 않을거 같네요.
아... 답변들 감사드립니다.제가 생각이 좀 짧았네요. 예전에 공
아... 답변들 감사드립니다.
제가 생각이 좀 짧았네요. 예전에 공부하다 다시 할려고 하니..
(char 가 1byte , int 2byte 인줄 알고... 부끄..-_- :oops: ;;)
이해 되었습니다. 답변들 감사드립니다.
언제나 시작
댓글 달기