Apa sebenarnya arti radix? Mengapa kita membutuhkannya?
parseInt(10, radixValue);
javascript
John Cooper
sumber
sumber
Jawaban:
Anda mungkin tidak selalu ingin mengurai bilangan bulat menjadi bilangan basis 10, jadi menyediakan radix memungkinkan Anda menentukan sistem bilangan lain.
Radix adalah jumlah nilai untuk satu digit. Heksadesimal menjadi 16. Oktal menjadi 8, Biner menjadi 2, dan seterusnya ...
Dalam
parseInt()
fungsinya, ada beberapa hal yang bisa Anda lakukan untuk mengisyaratkan radix tanpa menyediakannya. Ini juga dapat merugikan Anda jika pengguna memasukkan string yang cocok dengan salah satu aturan tetapi tidak bermaksud demikian. Sebagai contoh:// 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);
sumber
parseInt('0101')
sekarang kembali101
. Namun browser yang berbeda mungkin memiliki perilaku yang berbeda. Selalu sertakan radix untuk hasil yang andal.parseInt(x, 0)
untuk beberapa alasan yang tidak dapat saya ingat sekarang .. apakah ini sama dengan yangparseInt(x, 10)
saya pikirkan sekarang ...Karena jika Anda memiliki angka string seperti
0700
dan ingin outputnya integer700
Anda perlu menginformasikanparseInt()
bahwa itu adalah angka desimal daripada oktal.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
sumber
0o
alih - alih0
Radix adalah dasar dari sistem penomoran. Ada jumlah sistem numerik yang tak terbatas tetapi yang kebanyakan orang kenal adalah basis 10 (desimal) dan basis 2 (biner).
Nilai numerik dapat diinterpretasikan secara berbeda dalam basis yang berbeda. Misalnya, angka 10 dalam biner dapat direpresentasikan sebagai 2 dalam desimal.
Dalam kasus
parseInt()
, radix memungkinkan Anda untuk menentukan basis yang akan digunakan. Secara default, radix 10 digunakan.Namun, radix harus selalu ditentukan, bahkan saat menggunakan basis 10. Pertimbangkan kasus
parseInt("010")
// Mengembalikan 8Pada pandangan pertama, Anda mungkin mengharapkan pernyataan tersebut kembali 10. Penggunaan radix secara eksplisit akan membantu menghindari kebingungan:
parseInt("010", 10)
// Pengembalian: 10sumber
Radix adalah nomor basis dari sistem bilangan: http://en.wikipedia.org/wiki/Radix
Biasanya, Anda hanya perlu menentukan radix jika Anda menginginkannya berbeda dari 10. Lebih spesifik (dari http://www.w3schools.com/jsref/jsref_parseInt.asp ):
sumber
Hanya menambahkan beberapa informasi tambahan yang menjawab pertanyaan dengan jelas:
Jika radix tidak ditentukan atau 0 (atau tidak ada), JavaScript mengasumsikan sebagai berikut:
Sumber: MDN parseInt ()
sumber
Ini hanya pendapat saya, tetapi gagasan bahwa "kita perlu menggunakan radix" dengan cepat menjadi usang. Masalahnya sebenarnya sudah terjadi beberapa waktu lalu karena orang-orang di luar dunia IT biasanya tidak menggunakan notasi angka selain desimal dan cukup sering memberikan angka desimal dengan bantalan nol seperti "010". Tetapi karena ECMAScript 6 angka oktal di JS diawali dengan "0o" dan bukan hanya "0" seperti di ECMAScript 5 dan 3. Jadi jika Anda tidak menargetkan keluarga IE (situasi yang tidak jarang sekarang) Anda dapat melewati radix dengan aman.
sumber
Sumber W3Schools
sumber
Apa itu radix di paseInt ()?
The
parseInt()
fungsi mem-parsing string dan mengembalikan integer. Dibutuhkan argumen kedua untuk radix , yang menentukan basis nomor dalam string . The radix bisa integer antara2
dan36
.Panggilan fungsi terlihat seperti (Sintaks):
parseInt(string, radix);
Beberapa contoh untuk memperjelas konsep radix
Contoh 1:
var a = parseInt("11", 2);
The radix variabel mengatakan bahwa "11" adalah dalam sistem biner, atau dasar 2 . Oleh karena itu, contoh ini mengubah string "11" menjadi bilangan bulat 3.
Contoh 2:
var a = parseInt("10011", 16);
Di sini radix mengatakan
parseInt()
bahwa itu10011
adalah bilangan heksadesimal dan karenanya dalam bilangan bulat, itu akan diubah menjadi65553
Pada dasarnya, singkat cerita, argumen radix mengatakan
parseInt()
bahwa string yang diteruskan sebagai parameter pertama adalah dari sistem tertentu (biner, heksadesimal, dll) dan perlu diubah menjadi integer sebagai produk akhir.sumber