में मैं के एंड आर पढ़ रहा हूं; अब तक मैं इसके साथ अच्छा प्रदर्शन कर रहा हूं, लेकिन itoa()
में कुछ ऐसा है जो मुझे समझ में नहीं आता है। यहां itoa()
में वे कहते हैं कि वे संख्याओं को खुद उलट देते हैं। उदाहरण के लिए 10 01 है (वे स्ट्रिंग रिवर्स):मुझे यह समझ में नहीं आता है() के एंड आर पुस्तक
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) < 0) /* record sign */
n = -n; /* make n positive */
i = 0;
do { /* generate digits in reverse order */
s[i++] = n % 10 + '0'; /* get next digit */
} while ((n /= 10) > 0); /* delete it */
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
return;
}
मुझे समझ नहीं आता कि यह कैसे संख्या को उलट दिया। भले ही हम n % 10 + '0'
कर रहे हैं, तो यह निम्न अंक जो 10 तो 1 हटा दिया जाता है, तो यह 0 पर जाता है? या मुझे इसका तर्क नहीं मिला है?
कृपया विराम चिह्न का उपयोग करें और रन-ऑन वाक्यों से बचें। अपने प्रश्न को पढ़ना बहुत मुश्किल है। –
ध्यान दें कि यह कोड विश्वसनीय रूप से INT_MIN को परिवर्तित नहीं करता है। –
@ जोनाथन आप INT_MIN के लिए पोर्टेबल के लिए खाते की क्या सिफारिश करेंगे? धन्यवाद! – sigjuice