본문 바로가기

cpp2

프로그래밍 언어에서의 나눗셈과 나머지 연산 차이 우리가 수학에서 정수 나눗셈과 나머지(modular) 연산을 다룰 때는, 나머지가 0 이상인 정수이다. 하지만 프로그래밍 언어에서는 이러한 연산이 언어마다 다르게 정의되며, 그 차이는 특히 음수 연산에서 두드러진다. 이로 인해 프로그램이 의도와 다르게 동작할 수 있으므로, 정확한 이해가 필요하다.1. 사례: C++ vs PythonC++int a = -5 / 2; // 결과: -2int b = -5 % 2; // 결과: -1Pythona = -5 // 2 # 결과: -3b = -5 % 2 # 결과: 1둘 다 -5 ÷ 2를 계산하는 코드지만, 결과는 다르다.2. 핵심 차이: 몫 연산의 방향성과 나머지의 부호나눗셈을 수행할 때 소수점 이하의 값을 어떻게 처리하느냐에 따라 이러한 차이가 발생한다.C+.. 2025. 5. 11.
c++에서 class의 private 멤버를 일반적이지 않은 방법으로 읽기 c++의 private 접근 지정자는 "동일한 class가 아니라서 접근하실 수 없습니다."라 말한다. "아니 내가 좀 보겠다는데 거 한 번만 봅시다~" 라 말해도 "친구(friend)가 아니라면 만날 수 없습니다"는 말만 돌아올 뿐이다. 하지만 난 같은 class도 아니고 friend도 아니다. 그렇다고 기존에 있던 class의 코드를 수정하고 싶지는 않다. 그렇다면 private 멤버를 읽을 방법이 없는가? 그렇지는 않다. 우리는 몇 가지 편법을 사용해서 private 멤버를 읽고 임의로 수정할 수 있다. 이 글에선 friend를 이용한 일반적인 방법을 한번 본 후 수많은 꼼수들 중 두 가지 방법을 소개할 것이다. Friend를 사용한 일반적인 방법 만약 내가 이미 접근하려는 class의 friend.. 2021. 4. 25.