글
C++ 반전 연산자~와 논리 연산자 !의 차이
Skills/Programming
2014. 12. 16. 14:51
case CMD_TELEOPERATION:
{
bETRI_Tele = !bETRI_Tele;
cout<<"bETRI_Tele : "<<bETRI_Tele<<endl;
}
MFC 다이얼로그를 통해 버튼을 누르면 위의 코드에 들어가게 해 두었다.
그런데 이상한 점 발견!
bETRI_Tele = ~bETRI_Tele; 로 할 때에는 cout이 계속 1의 값을 반환한다는 것이다!
그러나 bETRI_Tele = !bETRI_Tele; 로 할 때에는 버튼을 누를 때마다 0과 1의 값이 반복되면서 제대로 잘 나온다.
일단, 그 원인은 ~가 bit 연산자라는 것에 있을 것으로 판단되고 boolean이 bit로 보았을 때에는 단순한 1과 0 이 아닐 것이라는 추측이 된다.
'Skills > Programming' 카테고리의 다른 글
MATLAB에서 Figure docking (default) (1) | 2015.05.21 |
---|---|
[Assertion failed] wincore.cpp error line 952 (0) | 2015.01.15 |
공유 메모리를 이용한 IPC (0) | 2014.12.15 |
MFC dialog에서 콘솔(console)로 디버깅하기 (0) | 2014.12.15 |
[C/C++] double 형 데이터에 분수 넣기 (0) | 2014.12.09 |