Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Is a power of two - Là Lũy Thừa Của Hai

Xem bằng ngôn ngữ khác: English

Cho một số nguyên dương, hãy viết một hàm ��ể kiểm tra xem nó có phải là lũy thừa của hai hay không.

Giải pháp Naive

Trong giải pháp Naive, chúng ta chỉ cần tiếp tục chia số cho hai cho đến khi số trở thành 1 và mỗi lần làm như vậy, chúng ta kiểm tra rằng phần dư sau khi chia luôn là 0. Nếu không, số đó không thể là một lũy thừa của hai.

Giải pháp Bitwise

Các lũy thừa của hai trong hệ nhị phân luôn chỉ có một bit được thiết lập. Duy nhất ngoại lệ là với một số nguyên có dấu (ví dụ: một số nguyên có dấu 8 bit với giá trị -128 sẽ trông như sau: 10000000)

1: 0001
2: 0010
4: 0100
8: 1000

Vì vậy, sau khi kiểm tra số có lớn hơn không, chúng ta có thể sử dụng một phép toán bitwise để kiểm tra rằng chỉ có một bit được thiết lập.

số & (số - 1)

Ví dụ cho số 8, phép toán đó sẽ như sau:

  1000
- 0001
  ----
  0111

  1000
& 0111
  ----
  0000

Tài Liệu Tham Khảo