기수는 실제로 무엇을 의미합니까? 왜 필요합니까?
parseInt(10, radixValue);
답변:
정수를 항상 밑이 10 인 숫자로 구문 분석하지 않을 수도 있으므로 기수를 제공하면 다른 숫자 체계를 지정할 수 있습니다.
기수는 단일 숫자 값의 수입니다. 16 진수는 16입니다. 8 진수는 8, 2 진수는 2, 등등 ...
에서 parseInt()
기능을 제공하지 않고 당신이 기수 암시 할 수있는 몇 가지가있다. 사용자가 규칙 중 하나와 일치하지만 명시 적으로 의미하지는 않는 문자열을 입력하는 경우에도 이러한 문제가 발생할 수 있습니다. 예를 들면 :
// Numbers with a leading 0 used a radix of 8 (octal) before ECMAScript 5.
// These days, browsers will treat '0101' as decimal.
var result = parseInt('0101');
// Numbers that start with 0x use a radix of 16 (hexidecimal)
var result = parseInt('0x0101');
// Numbers starting with anything else assumes a radix of 10
var result = parseInt('101');
// Or you can specify the radix, in this case 2 (binary)
var result = parseInt('0101', 2);
parseInt('0101')
이제를 반환합니다 101
. 하지만 브라우저마다 동작이 다를 수 있습니다. 신뢰할 수있는 결과를 얻으려면 항상 기수를 포함하십시오.
parseInt(x, 0)
기억이 나지 않는 이유로 항상 사용해 왔습니다 . parseInt(x, 10)
지금 궁금해하는 것과 같습니다 .
같은 문자열 숫자 0700
가 있고 출력이 정수가되기를 원한다면 8 진수가 아닌 10 진수임을 700
알려야 parseInt()
합니다.
console.log(parseInt("0700"));
// 448
// I really wanted decimal (base 10)
console.log(parseInt("0700", 10));
// 700
// What is this? Binary, Decimal, Octal?
console.log(parseInt("0110"));
// 72
// as binary
console.log(parseInt("0110", 2));
// 6
0o
대신에 시작합니다0
기수는 계산 시스템의 기본입니다. 무한한 수의 숫자 체계가 있지만 대부분의 사람들에게 익숙한 것은 10 진법 (10 진수)과 2 진법 (이진법)입니다.
숫자 값은 기준에 따라 다르게 해석 될 수 있습니다. 예를 들어 2 진수 10은 10 진수 2로 표현할 수 있습니다.
의 경우 parseInt()
기수를 사용하면 사용할 기준을 지정할 수 있습니다. 기본적으로 기수 10이 사용됩니다.
그러나 밑수 10을 사용하는 경우에도 기수는 항상 지정해야합니다.
parseInt("010")
// 8을 반환합니다.
언뜻보기에 명령문이 10을 반환 할 것으로 예상 할 수 있습니다. 기수를 명시 적으로 사용하면 혼동을 피하는 데 도움이됩니다.
parseInt("010", 10)
// 반환 : 10
기수는 숫자 체계의 기본 번호입니다. http://en.wikipedia.org/wiki/Radix
일반적으로 10과 다르기를 원하는 경우에만 기수를 지정하면됩니다.보다 구체적으로 ( http://www.w3schools.com/jsref/jsref_parseInt.asp에서 ) :
radix 매개 변수가 생략되면 JavaScript는 다음을 가정합니다.
문자열이 "0x"로 시작하면 기수는 16 (16 진수)입니다. 문자열이 "0"으로 시작하면 기수는 8 (8 진수)입니다. 이 기능은 더 이상 사용되지 않습니다. 문자열이 다른 값으로 시작하는 경우 기수는 10 (10 진수)입니다.
질문에 명확하게 답할 수있는 추가 정보를 추가하면됩니다.
radix가 정의되지 않았거나 0 (또는 부재)이면 JavaScript는 다음을 가정합니다.
출처 : MDN parseInt ()
내 의견 일 뿐이지 만 "기수를 사용해야한다"는 생각은 금방 구식이된다. 문제는 IT 세계 외부의 사람들이 일반적으로 십진수 이외의 숫자 표기법을 사용하지 않고 "010"과 같이 0으로 채워진 십진수를 제공하기 때문에 실제로 얼마 전에 실제로 발생했습니다. 그러나 JS의 ECMAScript 6 8 진수는 ECMAScript 5 및 3에서와 같이 "0"이 아니라 "0o"로 시작되므로 IE 제품군을 대상으로하지 않는 경우 (지금은 드문 상황이 아닙니다) radix를 건너 뛸 수 있습니다. 안전하게.
paseInt ()에서 기수 는 무엇입니까 ?
이 parseInt()
함수는 문자열을 구문 분석하고 정수를 반환합니다. 문자열에있는 숫자의 밑 을 지정하는 기수에 대한 두 번째 인수를 사용 합니다 . 기수 의 정수가 될 수 2
및 36
.
함수 호출은 (구문)과 같습니다.
parseInt(string, radix);
기수 개념을 명확히하는 몇 가지 예
예 1 :
var a = parseInt("11", 2);
기수 변수는 "11"는에 있음을 말한다 이진 시스템, 또는 기본 2 . 따라서이 예에서는 문자열 "11"을 정수 3으로 변환합니다.
예 2 :
var a = parseInt("10011", 16);
다음은 기수는 알려줍니다 parseInt()
그 10011
A는 16 진수 따라서 정수에,이 변환됩니다65553
기본적으로 간단히 말해서 기수 인수는 parseInt()
첫 번째 매개 변수로 전달 된 문자열이 특정 시스템 (이진, 16 진 등)이고 최종 제품으로 정수로 변환되어야 함을 알려줍니다 .