Related functions: atof, atoi, atol, strtodd, strtoul
Header file: # include <stdlib. h>
Define the function: long int strtol (const char * nptr, char ** endptr, int base)
Function Description: strtol () converts the nptr parameter string to the Growth integer number based on the base parameter. The base parameter ranges from 2 to 36, or 0. The base parameter indicates the base method, as shown in figure
If the base value is 10, the string is in decimal format)If the base value is 16, the string is in hexadecimal notation ). When the base value is 0, the conversion is made using 10. However, if the '0x 'prefix character is encountered, the hexadecimal conversion is made using 16. At the beginning, strtol () scans the nptr parameter string and skips the leading space character until it starts to convert in case of a number or positive or negative sign, when a non-number or string ends ('/0'), the conversion ends and the result is returned.
If the endptr parameter is not NULL, the character pointer in the nptr that is terminated due to an exception is returned by the endptr.
Return Value: return the converted long integer. Otherwise, the error code is returned and stored in errno.
Note: The conversion string specified by ERANGE is out of the valid range.
Convert strings a, B, and c into numbers in hexadecimal notation 10, 2, and 16, respectively.
------------------------------------------------
# Include <stdlib. h>
# Include <stdio. h>
Main ()
{
Char a [] = "100 ";
Char B [] = "100 ";
Char c [] = "ffff ";
Printf ("a = % d/n ",Strtol(A, NULL, 10); // 100
Printf ("B = % d/n", strtol (B, NULL, 2); // 4
Printf ("c = % d/n", strtol (c, NULL, 16); // 65535
}
"100" ---> 100 (Dec) ---> 100 (Dec)
"100" ---> 100 (BIN) ---> 4 (Dec)
"Ffff" ---> ffff (Hex) ---> 65535 (Dec)
Each character in string B occupies one Byte (1 Byte = 8 bits) space in the memory,Convert the content of several (3) bytes to a binary number (string "100" removes double quotation marks and is a binary number 100)In decimal format.4Print it out