그래서, 내가 가지고있는 다음과 같은 - 내가 할 경우64 비트 부호없는 뺄셈 문제
size_t Num2= 2359198081
size_t Num1= 2359197799
size_t Diff= Num2 - Num1;
,
std::cout << "Diff: " << Diff;
내가 얻을
Diff: 18446744071938113404
난 다음이 size_t의 int64_t 대신 할 경우 Num2와 Num1이 2보다 커지면 예상 한대로 음의 값을 얻습니다.
내가 할 경우,
std::cout << "Diff: " << Num2 - Num1 << std::endl;
은 그 때 나는 얻을
DIFF : 282
예상대로입니다.
내가 여기서 잘못된 것은 무엇입니까? 오히려 어떻게이 올바른 64 비트 빼기를 할 수 있습니까?
실제 코드를 표시하십시오. 당신이 묘사하고있는 것은 의미가 없기 때문에 언급하지 않은 것을 계속해야합니다. 문제를 컴파일하고 실행하고 보여주는 프로그램을 제공하십시오. –
'size_t '는 부호없는 유형입니다. 부정적인 가치를 기대한다면 기대치를 조정하십시오. 실제 코드를 보여줍니다. Num2-Num1'은 282가됩니다. 아마도 Num1-Num2를 계산하고 있습니까?읽기 : [mcve] –
어떻게 '부호없는'정수를 사용하여 음수 값을 얻을 수 있습니까? –