Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

양의 정수 비트를 반전시키는 Python 프로그램?

<시간/>

먼저 bin() 함수를 사용하여 숫자를 이진수로 변환합니다. 그런 다음 bin()이 숫자의 이진 표현에서 접두사로 0b를 추가하고 나머지 부분을 반대로 하기 때문에 이진 표현의 처음 두 문자를 건너뜁니다. 또한 문자에서 왼쪽에서 두 번째 마지막 문자까지 뒤집습니다. 역 이진 문자열을 정수로 변환합니다.

알고리즘

integernumber(n,bit_size)
/* n is the number and bit_size is the bitsize  */
Step 1: first convert number into binary .
Step 2: skip the first two characters of binary representation string and reverse.
Step 3: remaining string and then append 0’s after it.
Step 4: from the last character and reverse it until second last character from the left.
Step 5: converts reversed binary string into an integer.

예시 코드

# Python Program reverse bits of positive integer number
defintegernumber(n,bit_size):
   bin_number = bin(n)
   reverse_number = bin_number[-1:1:-1]
   reverse_number = reverse_number + (bit_size - len(reverse_number))*'0'
   print ("Reverse Bits ::>",int(reverse_number,2))
# Driver program
if __name__ == "__main__":
   n = int(input("Enter Number ::>"))
   bit_size = int(input("Enter Bit Size ::>")) 
   integernumber(n,bit_size)

출력

Enter Number ::>1
Enter Bit Size ::>32
Reverse Bits ::> 2147483648

Enter Number ::>2147483648
Enter Bit Size ::>32
Reverse Bits ::> 1