Advertisement
Toliak

Comparable bin counter

Feb 24th, 2019
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.84 KB | None | 0 0
  1. def mask(index: int) -> int:
  2.     return 1 << index
  3.  
  4.  
  5. def is_comparable(x: int, y: int) -> bool:
  6.     str_len: int = max(len(bin(x)), len(bin(y)))
  7.     bin_len: int = str_len - 2
  8.     state: int = -1
  9.     for i in range(0, bin_len):
  10.         r_a: int = x >> i & 0b1
  11.         r_b: int = y >> i & 0b1
  12.  
  13.         if r_a == r_b:
  14.             continue
  15.         elif r_a > r_b:
  16.             if state != -1 and state != 0:
  17.                 return False
  18.             state = 0
  19.         elif r_a < r_b:
  20.             if state != -1 and state != 1:
  21.                 return False
  22.             state = 1
  23.  
  24.     return True
  25.  
  26.  
  27. ALPHA = 0b1011000100
  28. BETA =  0b1110010110
  29.  
  30. print(is_comparable(ALPHA, 0b1111110110))
  31.  
  32. counter: int = 0
  33. for i in range(0b0000000000, 0b1111111111 + 1):
  34.     counter += is_comparable(ALPHA, i) and not is_comparable(BETA, i)
  35.  
  36. print(counter)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement