§

Options

§

Binari (asas 2)

§

Oktal (asas 8)

§

Perpuluhan (asas 10)

§

Perenam-belas (asas 16)

§

Asas tersuai

Penukaran asas nombor merupakan kemahiran asas dalam sains komputer. Pola bit 32-bit digunakan dalam perwakilan pecahan titik terapung IEEE 754, di mana pelajar perlu mengurai tanda, eksponen, dan medan mantissa. Penguji penembusan menggunakan notasi hex semasa membuat anotasi penyalahgunaan bendera bit terhadap topeng pemanggilan sistem. Penukar ini mengendalikan bahagian mekanikal supaya jurutera boleh memberi tumpuan kepada pentafsiran, bukan aritmetik.

Cara penukaran asas berfungsi

Setiap sistem angka berposisi mewakili nilai sebagai jumlah digit yang didarab dengan kuasa asas. Menukar asas bermakna menulis semula nilai yang sama terhadap siri kuasa yang berbeza.

  1. Sahkan abjad input. Setiap asas menerima set digit tertentu. Binari menerima 0 dan 1; oktal menerima 0-7; perpuluhan menerima 0-9; hex menerima 0-9 dan A-F. Aksara di luar abjad yang dipilih mengemukakan ralat sebaris sebelum sebarang penukaran dijalankan.
  2. Hurai nilai. Untuk nilai yang muat dalam JavaScript Number (sehingga 2^53-1) alat memanggil parseInt(text, base). Di atas sempadan itu ia menggunakan BigInt supaya penukaran kekal tepat untuk integer yang sangat besar.
  3. Render semula dalam setiap asas sasaran. Nilai yang dihurai ditukar kepada setiap asas output melalui Number.prototype.toString(base) atau BigInt.prototype.toString(base). Empat anak tetingkap standard (binari, oktal, perpuluhan, hex) dan anak tetingkap asas tersuai dikemas kini bersama.
  4. Gunakan pemformatan. Togol awalan menambah 0b, 0o, atau 0x ke hadapan output binari, oktal, dan hex. Pengelompokan digit memasukkan garis bawah setiap empat digit binari dan setiap dua digit hex. Togol kes hex memilih huruf besar atau huruf kecil untuk A-F.
  5. Segerak merentas anak tetingkap langsung. Mengedit mana-mana anak tetingkap mencetuskan penukaran semula bersanggah 100 ms yang mengemas kini anak tetingkap lain. Anak tetingkap yang sedang anda taip dianggap sebagai sumber kebenaran pada setiap ketukan kekunci.

Mengapa menggunakan penukar asas

  • Membaca longgokan memori. Penyahpepijat, penghurai rakitan, dan pemapar longgokan teras menunjukkan alamat dan nilai daftar dalam hex. Menterjemahkannya kepada perpuluhan menjadikannya setanding dengan kiraan, saiz, dan offset yang dilaporkan di tempat lain dalam jejak yang sama.
  • Bekerja dengan kod warna. CSS, alat reka bentuk, dan format imej mengeja warna dalam triplet hex seperti #d2511a. Menukar setiap pasangan kepada perpuluhan mengubah warna yang sama kepada bentuk rgb(210, 81, 26) yang dijangkakan oleh pemilih warna atau pemeriksa kebolehcapaian anda.
  • Menyahkod kebenaran fail. Nilai chmod Unix ditulis dalam oktal: 755 bermakna rwxr-xr-x setelah anda menterjemahkan setiap digit oktal kepada tiga bit binarinya. Penukar menunjukkan pemetaan itu dalam satu langkah supaya anda boleh menyemak set kebenaran tanpa mencari halaman manual.
  • Menyahpepijat bendera bit. Protokol rangkaian, pemanggilan sistem kernel, dan daftar perkakasan memaketkan banyak bendera boolean ke dalam satu integer. Membaca integer dalam binari menunjukkan bit mana yang ditetapkan sekilas pandang, yang anda perlukan apabila mengesan mengapa bendera tidak berkuat kuasa.

Aplikasi biasa

Penukaran asas muncul dalam kerja pembangun, keselamatan, dan perkakasan harian apabila nombor lebih daripada sekadar kiraan.

  • Perisian tegar terbenam: baca longgokan hex daripada probe JTAG, cari alamat fungsi, dan tulis arahan titik henti menggunakan offset perpuluhan yang diterima oleh skrip penyahpepijat anda.
  • Keselamatan rangkaian: hurai topeng rangkaian 32-bit yang dicetak dalam perpuluhan bertitik kembali kepada binari untuk mengira panjang awalan, kemudian tulis bentuk CIDR untuk peraturan ACL.
  • Teka-teki CTF dan cabaran kriptografi: beralih antara hex, perpuluhan, dan binari sambil membandingkan serpihan kunci yang bocor terhadap plaintext calon di bawah XOR.

Contoh yang dikerjakan

Taip 255 ke dalam anak tetingkap perpuluhan. Anak tetingkap hex dikemas kini kepada FF (atau 0xFF dengan togol awalan dihidupkan), anak tetingkap binari kepada 11111111 (dikumpulkan sebagai 1111_1111), dan anak tetingkap oktal kepada 377. Tukar radix anak tetingkap tersuai kepada 36 dan nilai yang sama dirender sebagai 73. Taip nilai yang lebih besar seperti 123456789012345678901234567890 ke dalam anak tetingkap perpuluhan; anak tetingkap hex menggunakan laluan BigInt dan merender 18EE90FF6C373E0EE4E3F0AD2.

FAQ

Apakah asas nombor?

Asas nombor, atau radix, ialah berapa banyak digit berbeza yang digunakan oleh sistem berposisi sebelum ia membawa ke posisi seterusnya. Perpuluhan (asas 10) menggunakan 0-9; binari (asas 2) menggunakan hanya 0 dan 1; perenam-belas (asas 16) menggunakan 0-9 ditambah A-F. Nilai nombor tidak berubah apabila anda menukar asas — hanya cara digit ditulis dan dikumpulkan yang berubah.

Mengapa menggunakan perenam-belas dalam pengaturcaraan?

Satu digit hex dipetakan kepada tepat empat bit binari, jadi dua digit hex meliputi satu bait dan lapan digit hex meliputi perkataan 32-bit. Itu menjadikan hex bentuk paling padat yang boleh dibaca manusia untuk alamat memori, kandungan daftar, triplet warna, dan kunci kriptografi. Membaca 0xFF adalah lebih pantas daripada membaca 11111111, dan pola bit ada di sana jika anda memerlukannya.

Bolehkah saya menukar melebihi asas 36?

Alat ini berhenti pada asas 36 kerana itulah had atas API JavaScript asli parseInt dan toString, yang menerima 0-9 diikuti A-Z sebagai abjad digit. Asas 37-62 adalah mungkin dengan abjad tersuai (Base58 yang digunakan dalam alamat Bitcoin adalah satu contoh) tetapi ia dijejaki sebagai alat berasingan kerana setiap asas yang lebih tinggi memerlukan pengurutan digit kanonik sendiri.

Adakah ini mengendalikan nombor negatif dan titik terapung?

Integer negatif dirender dengan tanda tolak pada hadapan dalam setiap asas, tingkah laku yang sama yang dihantar oleh Number.prototype.toString. Perwakilan komplemen dua merentas lebar bit yang dipilih (8, 16, 32, 64) ialah paparan berasingan yang kami rancang untuk ditambah. Penukaran asas titik terapung juga di luar skop bagi versi ini; alat mengendalikan nilai integer sahaja.

Penukaran asas ialah kerja kecil yang muncul berulang kali dalam kerja perisian tegar, keselamatan, dan grafik. Melakukannya dalam tab pelayar, dengan primitif aritmetik yang sama yang sudah dihantar oleh Node dan V8, memastikan kerja pantas dan data kekal pada mesin anda.