'2015/03/15'에 해당되는 글 2건

  1. 2015.03.15 비트연산
  2. 2015.03.15 vs2013 초기화 하지 않은 변수사용시 컴파일 오류
2015. 3. 15. 23:59


비트 연산자


&

 AND 연산

|

 OR 연산

^

 XOR 연산

~

 비트 반전 0 <-> 1

<<

 왼쪽으로 비트열 이동

>>

 *오른쪽으로 비트열 이동

* 음수의 경우 오른쪽으로 비트열 이동시 MSB가 바뀌어지는 경우가 있으므로 주의.




AND 연산

둘 다 1이면 1, 그렇지 않으면 0



OR 연산

둘 중 하나가 1이면 1, 둘다 0이면 0



XOR 연산(*)

다르면 1, 같으면 0



~ 연산

0 이면 1, 1이면 0




이게 뭐 ? 라고 생각할 수도 있겠지만...

간단히 말하자면 1 Byte 공간을 예로 들면 1 Byte = 8 Bit 이다.


예를들어 저 8개의 0 또는 1 조합을 이용하면, 우리는 8개의 True / False 값을 저장하는 변수를 단지 1 Byte 로 해결 볼 수 있다는 의미이다.





Posted by 해비
2015. 3. 15. 23:24



초기화 하지 않은 변수의 값을 출력하면 쓰레기 값이 출력된다고 알고 있었는데...


vs2013 에서는 변수가 초기화 되지 않았다고 빌드 자체를 거부한다.

1>------ Build started: Project: ex211, Configuration: Debug Win32 ------

1>  ex211.c

1>d:\vs2013\ex211\ex211\ex211.c(10): error C4700: uninitialized local variable 'num2' used

1>d:\vs2013\ex211\ex211\ex211.c(10): error C4700: uninitialized local variable 'num1' used

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

 




<< 소스코드 >>

#include <stdio.h>

int main(void)

{


int num1;

int num2;


printf("%d %d", num1, num2);


return 0;

} 

- 초기화 하지 않은 변수 num1, num2를 사용하는 소스코드




vs2013 에서 확인된 내용인데... 다른 컴파일러에서는 어찌 반응할지 찾아봐야 겠다.


직접 시도 안해 봤으면 그냥 예전 지식 그대로 알고 있을 뻔 한 사건;;


역시 직접 부딪혀 보는게 최고~!!




Posted by 해비