は、私は次の文字列を持っている:JavaScriptの計算8進数で表現たとえば
15+6
私は8進数でこの式を計算します。だから私は取得したい:
23
このケースをサポートするjsには何らかの機能がありますか?そうでない場合は、8進表現を計算する最良の方法は何ですか?
は、私は次の文字列を持っている:JavaScriptの計算8進数で表現たとえば
15+6
私は8進数でこの式を計算します。だから私は取得したい:
23
このケースをサポートするjsには何らかの機能がありますか?そうでない場合は、8進表現を計算する最良の方法は何ですか?
はい、parseInt()
を基数8で使用し、基数を使用してNumber#toString()
で8進数に変換することができます。
こちらをご覧ください:Numbers and dates 8進数の使用は厳密なモードに依存します。
document.write((parseInt(15, 8) + parseInt(6, 8)).toString(8) + '<br>');
あなたはES6
標準を使用して...やるべき多くの計算がある場合に減らす、またはニーナの答え@
var str = '15+6';
var res = str.split('+').reduce(function(a,b){
return a + parseInt(b, 8)
}, 0).toString(8)
console.log(res) // 23
式に "+"演算子だけがない場合はどうなりますか? 私たちはregex/\ + | \ - /を使うことができますが、計算中にどのように現在の操作を定義することができます。 また、(分割しないで)式を計算するよりエレガントな方法があることを願っています –
を使用することができます。
ECMAScript 6では、8進数は「0o」という数字の前に付けることでサポートされています。
var result = 0o15 + 0o6;
document.write(result.toString(8));
は、なぜ我々はそれを文字列として変換する必要がありますか? 'parseInt(15,8)+ parseInt(6,8)'がなぜ '19 'を表示しているのか、混乱しています。 –
' ES6'では '0o15 + 0o6 == 19 && 0o15 + 0o6 = = 0o23' – isvforall