Bagaimana anda mengekspresikan biner literal di Python?
Bagaimana anda mengekspresikan integer sebagai bilangan biner dengan Python literal?
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 di Python?**
Ringkasan Jawaban
- Python 2.5 dan sebelumnya: dapat mengekspresikan biner menggunakan
int('01010101111',2)
tapi tidak dengan literal. - Python 2.5 dan sebelumnya: tidak ada cara untuk mengekspresikan biner literal.
- Python 2.6 beta: Anda dapat melakukannya seperti ini:
0b1100111
atau0B1100111
. - Python 2.6 beta: juga memungkinkan
0o27
atau0O27
(karakter kedua adalah huruf O) untuk mewakili octal. - Python 3.0 beta: Sama seperti 2.6, tapi tidak akan lagi mengizinkan tua
027
sintaks untuk octals.
334
6
Untuk referensi—masa depan Python kemungkinan: Mulai dengan Python 2.6 anda dapat mengekspresikan biner literal menggunakan awalan 0b atau 0B:
Anda juga dapat menggunakan baru bin fungsi untuk mendapatkan representasi biner dari nomor:
Pengembangan versi, dokumentasi: Apa's Baru di Python 2.6
Cara yang lain.
Mereka'tidak "biner" literal, melainkan, "integer literals". Anda dapat mengekspresikan integer literals dengan format biner dengan
0
diikuti olehB
ataub
diikuti oleh serangkaian angka-angka nol dan satu, misalnya:Dari Python 3 docs, ini adalah cara-cara memberikan integer literals dalam Python:
Cara lain untuk mengekspresikan biner:
Anda dapat memiliki nol dan satu dalam serangkaian objek yang dapat dimanipulasi (meskipun anda mungkin hanya harus melakukan bitwise operasi pada bilangan bulat dalam kebanyakan kasus) - hanya lulus int string nol dan satu dan dasar anda mengkonversi dari (2):
Secara opsional, anda dapat memiliki
0
atau0B
awalan:Jika anda lulus
0
sebagai dasar, itu akan menganggap basis 10 jika string doesn't menentukan dengan awalan:Mengkonversi dari int kembali untuk dibaca manusia biner:
Anda dapat melewati sebuah integer ke bin untuk melihat representasi string biner literal:
Dan anda dapat menggabungkan
bin
danint
untuk pergi bolak-balik:Anda dapat menggunakan format keterangan juga, jika anda ingin memiliki lebar minimum dengan sebelumnya nol:
0 di mulai dari sini menunjukkan bahwa basis 8 (10), yang cukup mudah untuk melihat:
Jika anda don't mulai dengan 0, maka python mengasumsikan jumlah adalah basis 10.
Sejauh yang saya dapat memberitahu Python, melalui 2.5, hanya mendukung heksadesimal & oktal literal. Aku menemukan beberapa diskusi tentang menambahkan biner untuk versi masa depan tapi tidak ada yang pasti.
Saya cukup yakin ini adalah salah satu hal yang disebabkan perubahan dalam Python 3.0 dengan mungkin (bin) untuk pergi dengan hex() dan oct().
EDIT: lbrandy's jawaban yang benar dalam semua kasus.