This function converts a null-terminated ASCII string representing a signed number to a signed long value.
The string should be in one of the following forms:
Table 1. Input strings
| "-0b1000000000000000" to "0b1111111111111111" | binary |
| "-0o100000" to "0o17777" | octal |
| "-0100000" to "0177777" | octal |
| "-32768" to "65535" | decimal |
| "-0x8000" to "0xffff" | hexadecimal |