아 진짜 못해먹겠네
장마인듯 아닌듯 6월의 어느 여름날, C++을 C+을 받고 C계열 언어에 대한 기억을 모두 잊은 채 처참한 학점으로 계절학기 강의를 수강중인데 모니터속 교수님이 청천벽력 같은 소리를 하신다.

뭐라는거야! 나좀 살려줘!
(모든 것을 잊은 나를 과연 전공자라고 할 수 있을까)
int x(131070.5) // x <- 131070 : 오차발생
short y(x) // x <- -2 : 오버플로우 발생
x: 0000 0000 0000 0001 1111 1111 1111 1110
-> y: 1111 1111 1111 1110

예?
-2요? 저게요? 왜요? 저거 어... 1111 1111 1111 1110이면, 아니, 이진수잖아요. 대충 등비수열의 합으로 구해봐도 -2는 아닌 것 같은데. 아니. 저기. 네?
23년인가? 처음 입학해서 선형대수 시험공부 벼락치기의 기억이 뒤죽박죽으로 남아있는데, 얼마 안 남은 그때 기억 중 이진법의 부호 표현 내용이 얼추 떠올랐다. 비트를 반전시키거나, 0 혹은 1로 표현하거나. 뭐 그런 내용이 있었던 것 같은데... 부호 비트가 떠올랐는데 검색해보니 부호 비트는 아닌 것 같다.


참고 블로그에서 위 이미지를 얻어왔다.
아니 근데, 그래서 1111 1111 1111 1110이 어떻게 -2인데? 와줘요 GPT를 하니 1을 더하라고 한다.

아하, 왜가 아니었구나. 2의 보수는 원래 1의 보수를 구하고 거기에 +1을 하는 거라고 한다.
(나 선형대수 그래도 재수강 안 할만큼은 받았는데... 정말 벼락치고 망치고 잊어버렸구나 서토르)
JS는 워낙 자유분방한 언어라 const를 오만 곳에 다 가져다 썼는데, C++에서도 그러면 되지 않나? 라는 생각이 들어 헷갈리기 시작했다. 부트캠프 동기의 자랑 삼대천왕 희원님께 여쭤보았더니 다음과 같은 답변이 왔다.


참고 블로그
VS Code에서는 Alt + Shift + ↓ 로 복사했지만 비주얼 스튜디오에서는 먹히지 않았다.
아무리 검색해봐도 자꾸 VS Code 단축키만 나왔는데, 구원의 블로그가 Ctrl+D 라고 알려주었다.