Cara konversi basis bekerja
Setiap sistem bilangan posisional merepresentasikan nilai sebagai jumlah digit yang dikalikan pangkat dari basisnya. Mengganti basis berarti menulis ulang nilai yang sama terhadap deret pangkat yang berbeda.
- Validasi alfabet masukan. Setiap basis menerima set digit tertentu. Biner menerima 0 dan 1; oktal menerima 0-7; desimal menerima 0-9; hex menerima 0-9 dan A-F. Karakter di luar alfabet yang dipilih akan memunculkan pesan kesalahan sebelum konversi dijalankan.
- Urai nilai. Untuk nilai yang muat dalam Number JavaScript (hingga 2^53-1), alat memanggil
parseInt(text, base). Di atas batas tersebut, alat beralih keBigIntagar konversi tetap akurat untuk bilangan bulat yang sangat besar. - Tampilkan ulang dalam setiap basis target. Nilai yang diurai dikonversi ke setiap basis keluaran melalui
Number.prototype.toString(base)atauBigInt.prototype.toString(base). Empat panel standar (biner, oktal, desimal, hex) dan panel basis kustom diperbarui bersama. - Terapkan pemformatan. Sakelar awalan menambahkan 0b, 0o, atau 0x di depan keluaran biner, oktal, dan hex. Pengelompokan digit menyisipkan garis bawah setiap empat digit biner dan setiap dua digit hex. Sakelar huruf hex memilih huruf besar atau kecil untuk A-F.
- Sinkronisasi langsung antar panel. Mengedit panel mana pun memicu konversi ulang dengan debounce 100 md yang memperbarui panel lain. Panel yang sedang Anda ketik diperlakukan sebagai sumber kebenaran pada setiap penekanan tombol.
Mengapa menggunakan konverter basis
- Membaca dump memori. Debugger, disassembler, dan penampil core dump menampilkan alamat dan nilai register dalam hex. Mengonversinya ke desimal memudahkan perbandingan dengan hitungan, ukuran, dan offset yang dilaporkan di tempat lain dalam trace yang sama.
- Bekerja dengan kode warna. CSS, alat desain, dan format gambar menyatakan warna dalam triplet hex seperti #d2511a. Mengonversi setiap pasang ke desimal mengubah warna yang sama menjadi bentuk rgb(210, 81, 26) yang diharapkan oleh pemilih warna atau pemeriksa aksesibilitas Anda.
- Mendekode izin file. Nilai chmod Unix ditulis dalam oktal: 755 berarti rwxr-xr-x setelah Anda menerjemahkan setiap digit oktal menjadi tiga bit binernya. Konverter menampilkan pemetaan tersebut dalam satu langkah sehingga Anda dapat memeriksa set izin tanpa membuka halaman manual.
- Men-debug bit flag. Protokol jaringan, syscall kernel, dan register perangkat keras mengemas banyak flag boolean ke dalam satu bilangan bulat. Membaca bilangan dalam biner menunjukkan bit mana yang aktif sekilas — persis yang Anda butuhkan saat mencari tahu mengapa sebuah flag tidak berlaku.
Aplikasi umum
Konversi basis muncul dalam pekerjaan sehari-hari pengembang, keamanan, dan perangkat keras kapan pun sebuah angka bukan sekadar hitungan biasa.
- Firmware tertanam: baca dump hex dari probe JTAG, temukan alamat fungsi, dan tulis perintah breakpoint menggunakan offset desimal yang diterima skrip debugger Anda.
- Keamanan jaringan: urai netmask 32-bit yang dicetak dalam dotted-decimal kembali ke biner untuk menghitung panjang awalan, lalu tulis bentuk CIDR untuk aturan ACL.
- Teka-teki CTF dan tantangan kripto: beralih antara hex, desimal, dan biner saat membandingkan fragmen kunci yang bocor dengan plaintext kandidat di bawah XOR.
Contoh yang dikerjakan
Ketik 255 ke panel desimal. Panel hex diperbarui menjadi FF (atau 0xFF dengan sakelar awalan aktif), panel biner menjadi 11111111 (dikelompokkan sebagai 1111_1111), dan panel oktal menjadi 377. Ganti radiks panel kustom ke 36 dan nilai yang sama dirender sebagai 73. Ketik nilai yang jauh lebih besar seperti 123456789012345678901234567890 ke panel desimal; panel hex menggunakan jalur BigInt dan merender 18EE90FF6C373E0EE4E3F0AD2.
FAQ
Apa itu basis bilangan?
Basis bilangan, atau radiks, adalah berapa banyak digit berbeda yang digunakan sistem posisional sebelum melakukan carry ke posisi berikutnya. Desimal (basis 10) menggunakan 0-9; biner (basis 2) hanya menggunakan 0 dan 1; heksadesimal (basis 16) menggunakan 0-9 ditambah A-F. Nilai suatu bilangan tidak berubah saat Anda mengganti basis — hanya cara digit ditulis dan dikelompokkan yang berubah.
Mengapa menggunakan heksadesimal dalam pemrograman?
Satu digit hex memetakan tepat empat bit biner, sehingga dua digit hex mencakup satu byte dan delapan digit hex mencakup kata 32-bit. Hal ini menjadikan hex bentuk paling ringkas yang dapat dibaca manusia untuk alamat memori, konten register, triplet warna, dan kunci kriptografi. Membaca 0xFF lebih cepat daripada membaca 11111111, dan pola bit tersedia langsung jika Anda membutuhkannya.
Bisakah saya mengonversi melampaui basis 36?
Alat ini berhenti di basis 36 karena itulah batas atas API JavaScript native parseInt dan toString, yang menerima 0-9 diikuti A-Z sebagai alfabet digit. Basis 37-62 dimungkinkan dengan alfabet kustom (Base58 yang digunakan dalam alamat Bitcoin adalah salah satu contoh), tetapi dilacak sebagai alat terpisah karena setiap basis lebih tinggi membutuhkan urutan digit kanoniknya sendiri.
Apakah ini menangani bilangan negatif dan float?
Bilangan bulat negatif dirender dengan tanda minus di depan dalam setiap basis, perilaku yang sama dengan yang dimiliki Number.prototype.toString. Representasi komplemen dua dalam lebar bit tertentu (8, 16, 32, 64) adalah tampilan terpisah yang kami rencanakan untuk ditambahkan. Konversi basis floating-point juga di luar cakupan versi ini; alat ini hanya menangani nilai bilangan bulat.
Konversi basis adalah pekerjaan kecil yang muncul berulang kali dalam firmware, keamanan, dan grafis. Melakukannya di tab peramban, dengan primitif aritmetika yang sama yang sudah digunakan Node dan V8, menjaga pekerjaan tetap cepat dan data tetap di mesin Anda.