Attention to details _ javascript tips for hexadecimal conversion of javascriptparseInt () function

Source: Internet
Author: User
ParseInt (string, radix) has two parameters. The first string is the input value, and the second radix is the input value. The parameter radix can be ignored. The default value is 10, convert various hexadecimal numbers to decimal integers. Next we will introduce in detail. If you are interested, you can find out that parseInt (string, radix) has two parameters, the first string is the input value, and the second radix is the input value. The radix parameter can be ignored. The default value is 10, convert the numbers in hexadecimal notation to a decimal INTEGER (if not an integer, rounded down ).

The value range of radix is 2 ~ 36. If radix is 1 or radix> 36, the conversion result is NaN. If radix is 0 or other values are ignored, radix is 10 by default.

This function requires that the first parameter be a string. If it is not a string, it will be converted to a string. Moreover, before conversion, characters matching the character set used by the hexadecimal number on the left of the string parameter are truncated for conversion of the hexadecimal number.
Spaces at the beginning and end of a string parameter are ignored.

ParseInt (param, radix) is equivalent to parseInt (String (param). trim (), radix)
For example, parseInt (010) // 8, the processing process is

The Code is as follows:


010 --> 8 // It starts with 0 and has eight digits.
8 --> '8'
ParseInt ('8') // ignore radix. The first input parameter is identified as a decimal number.


The Code is as follows:


ParseInt (0x10) // parseInt (16) returns a decimal value of 16.
ParseInt () // parseInt ('8', 16), get 8
ParseInt () // parseInt ('8', 7), 8 is discarded if it exceeds the character range used by the 7-digit system, and the conversion result is NaN
ParseInt (0 x) // parseInt ('16', 8) returns 14
ParseInt (0 x) // parseInt ('19', 8) character 9 exceeds the range of characters used by the octal number, is discarded, and the conversion result is 1


If the first parameter is passed into the string directly and radix is ignored, then:
The string starts with 0 and is identified as octal by default (IE 9 is identified as hexadecimal, and ie 6-8 is recognized as hexadecimal)
The string starts with 0x and is identified as hexadecimal by default.
Otherwise, it is recognized as a decimal system.

The Code is as follows:


ParseInt ('010 ') // 8, ie9 gets 10
ParseInt ('018') // 1, ie9 gets 18
ParseInt ('017') // 15, ie9 gets 15
ParseInt ('010 ', 8) // It is directly recognized as an octal conversion. The conversion result is 8.
ParseInt ('010 ', 7) // It is directly recognized as a 7-digit conversion result.
ParseInt ('010 ', 16) // It is directly recognized as hexadecimal and the conversion result is 16.
ParseInt ('0x10') // 16
ParseInt ('0x1g ') // 1
ParseInt ('0x1f') // 31
ParseInt ('0x10', 8) // It is directly recognized as octal. The character x exceeds the character range used by the octal number. The conversion result is 0.
ParseInt ('0x10', 15) // The Conversion Result is 0.
ParseInt ('0x10', 16) // 0x conforms to the hexadecimal number expression format and is correctly recognized as a hexadecimal number. The conversion result is the same as that of parseInt ('10', 16) is 16
ParseInt ('0x10', 17) // It is recognized as hexadecimal. The character x exceeds the character range used by the hexadecimal number. The conversion result is 0.
ParseInt (true) // NaN, note the difference between the usage of Boolean in the Number function, Number (true) // 1


Special notes
1/0 // Infinity
Infinity. toString () // 'infinity'
As a result, he came:

The Code is as follows:


ParseInt (1/0, 18) // NaN
ParseInt (1/0, 19) // 18


Because character I is in the character set used by the 19-digit system, CHARACTER n and subsequent
ParseInt (1/0, 19) is actually parseInt ('I', 19)
In addition

The Code is as follows:


ParseInt (NaN, 36) // 30191


Because CHARACTER n is equivalent to decimal 23 in hexadecimal notation, and character a is equivalent to decimal 10
23*36*36 + 10*36 + 23 = 30191
ParseInt (1/0, 36) // 1461559270678, which is actually parseInt ('infinity ', 36)
ParseFloat does not have a hexadecimal parameter and can only process a decimal number.
ParseFloat. length // 1
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.