#include <iostream>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int num=-2147483648;
int positivenum=-num;
int absval=abs(num);
std::cout<<positivenum<<"\n";
std::cout<<absval<<"\n";
return 0;
}
हाय मैं काफी उत्सुक हूँ क्यों उपरोक्त कोड के उत्पादन मेंसी/सी ++ में -2147483648 की नकारात्मकता संभव नहीं है?
-2147483648
-2147483648
अब मुझे पता है कि -2147483648
पर हस्ताक्षर किए ints सबसे छोटे represntable संख्या, (यह मानते हुए एक int
32 बिट है) है। मैं मानता था कि हम इस नंबर से नीचे जाने के बाद ही कचरा जवाब प्राप्त करेंगे। लेकिन इस मामले में, +2147483648 पूर्णांक के 32 बिट सिस्टम द्वारा कवर किया गया है। तो दोनों मामलों में नकारात्मक जवाब क्यों?
int के बजाय _int64 का उपयोग करें और पुनः प्रयास करें। – jmucchiello