Bagaimana Anda menggeser angka ke kiri dengan python?


Ada operator Bitwise berikut yang didukung oleh bahasa Python

OperatorDescriptionExample& Binary ANDOperator menyalin sedikit ke hasil jika ada di kedua operand(a & b) (berarti 0000 1100). ORIt biner menyalin sedikit jika ada di salah satu operan. (sebuah. b) = 61 (berarti 0011 1101)^ Binary XORIIt menyalin bit jika diatur dalam satu operan tetapi tidak keduanya. (a ^ b) = 49 (berarti 0011 0001)~ Komplemen Satuan BinerIni uner dan memiliki efek 'membalik' bit. (~a ) = -61 (berarti 1100 0011 dalam bentuk komplemen 2 karena bilangan biner bertanda. << Pergeseran Kiri BinerNilai operan kiri dipindahkan ke kiri dengan jumlah bit yang ditentukan oleh operan kanan. a << 2 = 240 (berarti 1111 0000)>> Binary Right ShiftNilai operan kiri dipindahkan ke kanan dengan jumlah bit yang ditentukan oleh operan kanan. a >> 2 = 15 (berarti 0000 1111)
#!/usr/bin/python

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0

c = a & b;        # 12 = 0000 1100
print "Line 1 - Value of c is ", c

c = a | b;        # 61 = 0011 1101 
print "Line 2 - Value of c is ", c

c = a ^ b;        # 49 = 0011 0001
print "Line 3 - Value of c is ", c

c = ~a;           # -61 = 1100 0011
print "Line 4 - Value of c is ", c

c = a << 2;       # 240 = 1111 0000
print "Line 5 - Value of c is ", c

c = a >> 2;       # 15 = 0000 1111
print "Line 6 - Value of c is ", c

Ketika Anda menjalankan program di atas menghasilkan hasil sebagai berikut -

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15
_

python_basic_operators. htm

Semua operator ini memiliki kesamaan -- mereka adalah operator "bitwise". Artinya, mereka beroperasi pada angka (biasanya), tetapi alih-alih memperlakukan angka itu seolah-olah itu adalah nilai tunggal, mereka memperlakukannya seolah-olah itu adalah string bit, ditulis dalam biner pelengkap dua. Biner komplemen dua sama dengan representasi biner klasik untuk bilangan bulat positif tetapi sedikit berbeda untuk bilangan negatif. Angka negatif diwakili dengan melakukan operasi komplemen keduanya pada nilai absolutnya. Jadi ringkasan singkat tentang biner dua-pelengkap sudah beres

Biner Komplemen Dua untuk Bilangan Bulat Positif

  • 0 ditulis sebagai "0"
  • 1 ditulis sebagai "1"
  • 2 ditulis sebagai "10"
  • 3 adalah "11"
  • 4 adalah "100"
  • 5 adalah "101"
  • .
  • .
  • 1029 adalah "10000000101" == 2**10 + 2**2 + 2**0 == 1024 + 4 + 1

Biner Komplemen Dua untuk Bilangan Bulat Negatif

Bilangan negatif ditulis dengan awalan satu, bukan awalan nol. Jadi, jika Anda hanya menggunakan 8 bit untuk bilangan pelengkap dua, maka Anda memperlakukan pola dari "00000000" hingga "01111111" sebagai bilangan bulat dari 0 hingga 127, dan mencadangkan "1xxxxxxx" untuk menulis bilangan negatif. Bilangan negatif, -x, ditulis menggunakan pola bit untuk (x-1) dengan semua bitnya saling melengkapi (beralih dari 1 ke 0 atau 0 ke 1). Jadi -1 adalah pelengkap(1 - 1) = pelengkap(0) = "11111111", dan -10 adalah pelengkap(10 - 1) = pelengkap(9) = pelengkap("00001001") = "11110110". Ini berarti angka negatif turun menjadi -128 ("10000000")

Tentu saja, Python tidak menggunakan angka 8-bit. Ini DIGUNAKAN untuk menggunakan banyak bit yang asli untuk mesin Anda, tetapi karena itu tidak portabel, baru-baru ini beralih menggunakan jumlah bit INFINITE. Dengan demikian angka -5 diperlakukan oleh operator bitwise seolah-olah ditulis ". 1111111111111111111011"

Wah. Dengan pembukaan itu (dan hei, Anda mungkin sudah tahu ini), operatornya mudah dijelaskan

Operator

x << y Mengembalikan x dengan bit digeser ke kiri sebanyak y tempat (dan bit baru di sisi kanan adalah nol). Ini sama dengan mengalikan x dengan 2**y. x >> y Mengembalikan x dengan bit digeser ke kanan sebanyak y tempat. Ini sama dengan //'ing x by 2**y. x & yMelakukan "bitwise and". Setiap bit dari output adalah 1 jika bit yang sesuai dari x AND dari y adalah 1, jika tidak maka 0. x. yApakah "bitwise atau". Setiap bit dari output adalah 0 jika bit yang sesuai dari x AND dari y adalah 0, jika tidak maka 1. ~ xMengembalikan komplemen dari x - angka yang Anda dapatkan dengan menukar setiap 1 dengan 0 dan setiap 0 dengan 1. Ini sama dengan -x - 1. x ^ yApakah "eksklusif bitwise atau". Setiap bit dari output adalah sama dengan bit yang sesuai di x jika bit di y adalah 0, dan komplemen dari bit di x jika bit di y adalah 1

Ingat saja tentang rangkaian 1 bit tak terbatas dalam angka negatif, dan ini semua harus masuk akal

Kelas Lain

Satu poin lagi. Python memungkinkan kelebihan operator, sehingga beberapa kelas dapat ditulis untuk memungkinkan operator bitwise, tetapi dengan beberapa arti lain. Misalnya, modul set baru untuk Python 2. 3 kegunaan. dan & untuk penyatuan dan persimpangan

Ada berbagai jenis operator seperti operator aritmatika, operator pembanding, dan operator bitwise di Python. Dalam program kami, kami menggunakan operator ini untuk mengontrol urutan eksekusi dan untuk memanipulasi data. Pada artikel ini, kita akan mempelajari berbagai operator python bitwise shift, fungsi dan contohnya

Daftar isi

Apa itu operator shift Bitwise?

Operator pergeseran bitwise adalah operator biner. Operator ini digunakan untuk menggeser bit representasi biner dari angka ke kiri atau kanan dengan tempat tertentu. Operator pergeseran bitwise sering digunakan untuk operasi di mana kita harus mengalikan atau membagi bilangan bulat dengan pangkat 2. Di sini, operator geser kiri Bitwise digunakan untuk mengalikan angka dengan pangkat 2 sedangkan operator geser kanan bitwise di python digunakan untuk membagi angka dengan pangkat 2.   

Operator Pergeseran Kanan Bitwise dengan Python

Operator geser kanan bitwise dalam python menggeser bit representasi biner dari nomor input ke sisi kanan dengan jumlah tempat yang ditentukan. Bit kosong yang dibuat dengan menggeser bit diisi dengan 0s.   

Bagaimana Anda menggeser angka ke kiri dengan python?

Sintaks untuk pergeseran kanan bitwise adalah >> n. Di sini 'a' adalah angka yang bitnya akan digeser oleh 'n' tempat ke kanan

Cara kerja operasi bitwise right shift dapat dipahami dari ilustrasi berikut

Misalkan kita harus menggeser bit 14 sebanyak 2 tempat. Kami pertama-tama akan mengubahnya menjadi format biner

  • 14 dalam format biner ditulis sebagai 1110

Setelah digeser, dua bit paling kanan 1 dan 0 akan dibuang dan bit paling kiri yang kosong akan diisi dengan 0s. Output dari 14 >> 2 akan menjadi 0011 dalam biner yang dikonversi ke nilai 3 dalam format integer.  

Di sini Anda dapat mengamati bahwa kami telah menggeser bit sebanyak 2 tempat karena nomor input telah dibagi dengan 22 i. e. 4. Demikian pula, jika kita menggeser angka dengan n bit, nilai bilangan bulat dari angka tersebut akan dibagi dengan 2n. Kami dapat memverifikasi output ini menggunakan operator shift kanan di python menggunakan program berikut

myNum1 = 14
myNum2 = 2
shiftNum = myNum1 >> myNum2
print("Operand 1 is:", myNum1)
print("operand 2 is:", myNum2)
print("Result of the right shift operation on {} by {} bits is {}.".format(myNum1, myNum2, shiftNum))

Keluaran

Operand 1 is: 14
operand 2 is: 2
Result of the right shift operation on 14 by 2 bits is 3.

Operator Pergeseran Kiri Bitwise dengan Python

Operator geser kiri bitwise di Python menggeser bit representasi biner dari nomor input ke sisi kiri dengan jumlah tempat yang ditentukan. Bit kosong yang dibuat dengan menggeser bit diisi dengan 0s.   

Sintaks untuk pergeseran kiri bitwise adalah << n. Di sini 'a' adalah angka yang bitnya akan digeser oleh 'n' tempat ke kiri

Cara kerja operasi bitwise shift kiri dapat dipahami dari ilustrasi berikut

Misalkan kita harus menggeser bit 14 sebanyak 2 tempat. Kami pertama-tama akan mengubahnya menjadi format biner

  • 14 dalam format biner ditulis sebagai 1110

Setelah digeser, bit paling kanan yang kosong akan diisi dengan 0s. Output dari 14 << 2 akan menjadi 111000 dalam biner yang dikonversi ke nilai 56 dalam format integer.  

Di sini Anda dapat mengamati bahwa kami telah menggeser bit sebanyak 2 tempat karena nomor inputnya telah dikalikan dengan 22 i. e. 4. Demikian pula, jika kita menggeser angka sebanyak n bit, nilai bilangan bulat dari angka tersebut akan dikalikan dengan 2n. Kami dapat memverifikasi output ini menggunakan operator shift kiri di python menggunakan program berikut

myNum1 = 14
myNum2 = 2
shiftNum = myNum1 << myNum2
print("Operand 1 is:", myNum1)
print("operand 2 is:", myNum2)
print("Result of the left shift operation on {} by {} bits is {}.".format(myNum1, myNum2, shiftNum))
_

Keluaran

Operand 1 is: 14
operand 2 is: 2
Result of the left shift operation on 14 by 2 bits is 56.

Kesimpulan

Pada artikel ini, kita telah membahas operator pergeseran bitwise, sintaks dan contohnya di Python. Untuk mempelajari lebih lanjut tentang pemrograman python, Anda dapat membaca artikel ini tentang pemahaman daftar. Anda mungkin juga menyukai artikel ini di daftar tertaut dengan Python

Terkait

Pelatihan Python yang Direkomendasikan

Kursus. Python 3 Untuk Pemula

Lebih dari 15 jam konten video dengan instruksi terpandu untuk pemula. Pelajari cara membuat aplikasi dunia nyata dan kuasai dasar-dasarnya

Apa operator shift kiri di Python?

Python bitwise operator shift kiri menggeser bit operan kiri ke sisi kiri untuk jumlah waktu tertentu dalam operan kanan . Secara sederhana, bilangan biner ditambahkan dengan 0 di bagian akhir.

Bagaimana Anda bergeser ke kiri?

Operator pergeseran kiri ( << ) menggeser operan pertama sejumlah bit yang ditentukan, modulo 32, ke kiri . Kelebihan bit yang digeser ke kiri akan dibuang. Nol bit digeser dari kanan.

Apa itu >> dan < dengan Python?