Bagaimana Anda mengekspresikan integer sebagai angka biner dengan literal Python?
Saya dengan mudah dapat menemukan jawaban untuk hex:
>>> 0x12AF
4783
>>> 0x100
256
dan oktal:
>>> 01267
695
>>> 0100
64
Bagaimana Anda menggunakan literal untuk mengekspresikan biner dengan Python?
Ringkasan Jawaban
- Python 2.5 dan sebelumnya: dapat mengekspresikan penggunaan biner
int('01010101111',2)
tetapi tidak dengan literal. - Python 2.5 dan sebelumnya: tidak ada cara untuk mengekspresikan literal biner.
- Python 2.6 beta: Anda dapat melakukannya seperti:
0b1100111
atau0B1100111
. - Python 2.6 beta: juga akan mengizinkan
0o27
atau0O27
(karakter kedua adalah huruf O) untuk mewakili oktal. - Python 3.0 beta: Sama seperti 2.6, tetapi tidak akan lagi mengijinkan
027
sintaks yang lebih lama untuk oktal.
Mereka bukan "biner" literal, melainkan "integer literals". Anda bisa mengekspresikan bilangan bulat integer dengan format biner dengan
0
diikuti olehB
ataub
diikuti oleh serangkaian nol dan yang, misalnya:Dari Python 3 docs , ini adalah cara untuk menyediakan bilangan bulat integer dalam Python:
Cara lain untuk mengekspresikan biner:
Anda dapat memiliki nol dan satu dalam objek string yang dapat dimanipulasi (walaupun Anda mungkin harus melakukan operasi bitwise pada integer dalam banyak kasus) - cukup masukkan int string nol dan satu dan basis Anda mengkonversi dari (2 ):
Anda dapat memiliki
0b
atau0B
awalan:Jika Anda meneruskannya
0
sebagai basis, ia akan menganggap basis 10 jika string tidak menentukan dengan awalan:Mengubah dari int kembali ke biner yang dapat dibaca manusia:
Anda bisa meneruskan integer ke bin untuk melihat representasi string dari literal biner:
Dan Anda dapat menggabungkan
bin
danint
untuk bolak-balik:Anda dapat menggunakan spesifikasi format juga, jika Anda ingin memiliki lebar minimum dengan nol sebelumnya:
sumber
0 pada awal di sini menetapkan bahwa basisnya adalah 8 (bukan 10), yang cukup mudah dilihat:
Jika Anda tidak memulai dengan 0, maka python mengasumsikan angkanya adalah basis 10.
sumber
Sejauh yang saya tahu Python, hingga 2.5, hanya mendukung heksadesimal & oktal literal. Saya memang menemukan beberapa diskusi tentang menambahkan biner ke versi masa depan tetapi tidak ada yang pasti.
sumber
Saya cukup yakin ini adalah salah satu hal karena perubahan pada Python 3.0 dengan mungkin bin () untuk pergi dengan hex () dan oct ().
EDIT: jawaban lbrandy benar dalam semua kasus.
sumber