Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ส่วนประกอบจำนวนเต็มฐาน 10 ใน Python


สมมติว่าเรามีตัวเลขในระบบเลขฐานสิบ เราต้องได้ส่วนเสริมของตัวเลขในรูปแบบไบนารี จากนั้นเปลี่ยนเป็นทศนิยมอีกครั้งและส่งคืนผลลัพธ์ ดังนั้นหากตัวเลขคือ 20 รูปแบบไบนารีจะเป็น 10100 ส่วนเติมเต็มจะเป็น 01011 นี่คือ 11 ในฐานสิบ

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • s :=สตริงไบนารีของตัวเลข n
  • ผลรวม :=0 และ num :=1
  • สำหรับแต่ละองค์ประกอบ i ใน s ในทิศทางย้อนกลับ
    • ถ้า i ='b' ให้คืนค่ารวม
    • มิฉะนั้น เมื่อ i ='0' แล้ว sum :=sum + num
    • num :=num * 2

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

class Solution(object):
   def bitwiseComplement(self, N):
      s = str(bin(N))
      sum = 0
      num = 1
      for i in s[::-1]:
         if i == "b":
            return sum
         elif i =="0":
            sum+=num
         num*=2
ob1 = Solution()
print(ob1.bitwiseComplement(20))

อินพุต

20

ผลลัพธ์

11