Angka Base Konverter

Konversi antara biner, oktal, desimal, dan heksadesimal.

Data Anda tidak meninggalkan perangkat Anda
Biner (basis 2)
Oktal (basis 8)
Desimal (basis 10)
Heksadesimal (basis 16)

Memahami basis bilangan

Basis bilangan (atau radix) menentukan berapa banyak digit unik yang digunakan untuk merepresentasikan angka. Yang paling akrab adalah basis 10 (desimal), yang menggunakan digit 0-9. Komputer menggunakan basis 2 (biner) secara native, hanya dengan 0 dan 1.

Pertanyaan umum

Apakah mendukung angka yang sangat besar?

Ya. Alat ini menggunakan BigInt JavaScript, yang mendukung integer berukuran sembarang tanpa kehilangan presisi. Anda dapat mengonversi angka dengan ratusan digit.

Mengapa biner penting dalam komputasi?

Komputer menggunakan sinyal listrik dengan dua status (on/off), yang secara alami sesuai dengan biner (1/0). Semua data · teks, gambar, video · pada akhirnya disimpan dan diproses dalam biner.

Cara kerja notasi posisional

Sistem angka posisional merepresentasikan angka menggunakan sekumpulan simbol digit berukuran tetap, di mana posisi setiap digit menentukan bobotnya. Bobot posisi i (dihitung dari kanan, dimulai dari nol) adalah base^i. Nilai angka adalah jumlah digit × base^i di semua posisi. String 352 dalam basis 10 berarti 3×100 + 5×10 + 2×1 = 352. String 1011 dalam basis 2 berarti 1×8 + 0×4 + 1×2 + 1×1 = 11 dalam desimal.

Notasi posisional adalah salah satu dari dua penemuan besar dalam representasi angka. Yang lainnya adalah non-posisional (angka Romawi, hieratik Mesir), di mana simbol memiliki nilai tetap terlepas dari posisi. Sistem posisional lebih kompak; sistem non-posisional tidak, angka 1.888 membutuhkan empat digit dalam desimal tetapi delapan karakter dalam Romawi: MDCCCLXXXVIII.

Sejarah singkat berbagai basis

Bangsa Babilonia menjalankan sistem posisional basis 60 (seksagesimal) setidaknya sejak periode Babilonia Kuno, sekitar 1900-1600 SM. Tablet tanah liat dari era itu sudah menggunakan notasi posisional. Mengapa 60? Ia memiliki jumlah pembagi kecil yang sangat tinggi (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60), yang membuat aritmetika pecahan lebih mudah di dunia pra-pecahan-desimal. Warisan Babilonia masih ada di saku Anda: waktu (60 detik dalam semenit, 60 menit dalam satu jam) dan sudut/koordinat geografis (360 derajat dalam lingkaran, 60 menit busur per derajat, 60 detik busur per menit) adalah keturunan langsungnya. Ketika Anda membaca jam atau garis lintang, Anda sedang membaca seksagesimal.

Sistem desimal posisional seperti yang kita kenal dikembangkan oleh matematikawan India pada abad-abad awal Masehi. Lompatan konseptual yang membedakannya dari papan hitung sebelumnya adalah simbol tertulis untuk nol sebagai penanda tempat. Penggunaan nol paling awal yang jelas dalam konteks posisional umumnya dikaitkan dengan Brahmagupta (628 M), yang risalahnya Brāhmasphuṭasiddhānta memberikan aturan aritmetika dengan nol. Manuskrip Bakhshali menunjukkan penggunaan bahkan lebih awal dari titik (bindu) sebagai penanda tempat.

Sistem desimal berpindah dari India ke dunia Islam pada abad ke-8 sampai ke-9, polymath Persia al-Khwārizmī menulis On the Calculation with Hindu Numerals sekitar tahun 825 M («algorithm» dan «algebra» adalah keturunan etimologi langsung dari nama dan judul bukunya). Eropa tertinggal. Leonardo dari Pisa, yang dikenal sebagai Fibonacci, secara resmi memperkenalkan angka Hindu-Arab ke Eropa Latin dalam Liber Abaci (1202), mendemonstrasikan keunggulannya atas angka Romawi. Angka Romawi bertahan dalam pembukuan Eropa hingga abad ke-16.

Gottfried Wilhelm Leibniz mendeskripsikan sistem bilangan biner penuh dalam makalah tahun 1703-nya Explication de l'arithmétique binaire: meskipun motivasi utamanya bersifat filosofis (korespondensi dengan I Ching) bukan praktis. Lompatan ke komputasi biner datang dengan tesis master Claude Shannon tahun 1937 di MIT, «A Symbolic Analysis of Relay and Switching Circuits,» yang menunjukkan aljabar Boolean dapat memodelkan jaringan relai listrik, menjadikan biner bahasa alami logika digital.

Algoritma konversi

Desimal ke basis lain, pembagian berulang. Untuk mengonversi bilangan bulat desimal N ke basis b, bagi N dengan b, catat sisa, ganti N dengan hasil bagi, dan ulangi hingga hasil bagi adalah 0. Sisa-sisa yang dibaca dari bawah ke atas adalah digit dalam basis b. Contoh untuk 156 ke biner: 156÷2 = 78 sisa 0, 78÷2 = 39 sisa 0, 39÷2 = 19 sisa 1, 19÷2 = 9 sisa 1, 9÷2 = 4 sisa 1, 4÷2 = 2 sisa 0, 2÷2 = 1 sisa 0, 1÷2 = 0 sisa 1, membaca sisa dari bawah ke atas: 10011100. Verifikasi: 128 + 16 + 8 + 4 = 156.

Basis lain ke desimal, metode Horner. Mulai dengan 0; untuk setiap digit dari kiri ke kanan, kalikan total berjalan dengan basis dan tambahkan digit baru. Contoh untuk hex 1F4: 0×16 + 1 = 1, kemudian 1×16 + 15 = 31, kemudian 31×16 + 4 = 500.

Kedua algoritma berjalan dalam waktu linier relatif terhadap jumlah digit, dan BigInt JavaScript mengimplementasikannya di balik layar, itulah mengapa alat ini tidak memiliki batas presisi. Angka 200-digit dikonversi dengan bersih antara dua basis mana pun tanpa kehilangan pembulatan, sama seperti kalkulator dengan aritmetika bilangan bulat presisi-arbitrer.

Empat basis yang penting dalam komputasi

Pangkat 2 yang perlu dihafal

PangkatDesimalHexMengapa penting
2⁸2560x100Satu byte; nilai maksimum saluran 8-bit (RGB)
2¹⁰1,0240x400«1K» dalam konteks komputasi
2¹⁶65,5360x10000Ukuran BMP UTF-16; maks bilangan bulat 16-bit
2²⁰1,048,5760x100000«1M» dalam konteks komputasi
2²⁴16,777,2160x1000000RGB 24-bit («16,7 juta warna»)
2³²~4,3 miliar0x100000000Maks bilangan bulat tak-bertanda 32-bit; ruang alamat IPv4
2⁶⁴~1.8×10¹⁹0x100…Maks bilangan bulat 64-bit; jauh melampaui presisi floating-point

Kapan Anda menggunakan konverter basis

Basis lain yang perlu diketahui

Konvensi awalan kode sumber

Sebagian besar bahasa modern menggunakan sekumpulan awalan literal yang sama untuk membedakan basis dalam kode sumber:

Pertanyaan lainnya

Bagaimana dengan bilangan negatif?

Komputer merepresentasikan bilangan bulat negatif menggunakan komplemen dua: balik semua bit dan tambahkan 1. Jadi dalam komplemen dua 8-bit, −1 adalah 11111111 (0xFF), −5 adalah 11111011 (0xFB), dan −128 adalah 10000000 (0x80). Bit paling signifikan menunjukkan tanda. Alat ini menampilkan bilangan bulat negatif dengan tanda minus di depan daripada representasi komplemen dua, karena yang terakhir hanya masuk akal pada lebar bit tetap, dan karena alat menggunakan BigInt presisi-arbitrer, tidak ada lebar tetap untuk ditafsirkan.

Mengapa hex menggunakan huruf A-F?

Karena basis 16 membutuhkan 16 simbol digit yang berbeda dan digit desimal 0-9 hanya menyediakan sepuluh. Konvensi penggunaan A-F (tidak peka huruf besar-kecil) untuk 10-15 dipopulerkan oleh IBM System/360 pada tahun 1960-an dan distandarisasi di seluruh industri. Sistem sebelumnya bereksperimen dengan glyph lain (G-15 Bendix menggunakan u, v, w, x, y, z) tetapi A-F menang.

Bisakah alat ini menangani pecahan?

Tidak, ini hanya untuk bilangan bulat. Konversi basis fraksional lebih kompleks karena sebagian besar pecahan desimal tidak memiliki representasi tepat dalam biner (masalah floating-point terkenal 0.1 + 0.2 ≠ 0.3). Untuk inspeksi tingkat bit floating-point, visualiser IEEE 754 khusus adalah alat yang tepat.

Apakah ada yang dikirim ke server?

Tidak. Konversi berjalan di browser Anda menggunakan aritmetika BigInt native JavaScript. Tidak ada yang berkaitan dengan input Anda yang meninggalkan halaman; alat berfungsi secara offline setelah dimuat.

Alat Terkait