GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — algorithms/algorithms/bit/swap_pair.py at master · oldmonad/algorithms Expand file tree/ Copy pathswap_pair.pyMore file actions 21 lines (19 loc) · 749 Bytes / Copy pathswap_pair.pyFile metadata and controls21 lines (19 loc) · 749 Bytes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 """ Swap_pair: A function swap odd and even bits in an integer with as few instructions as possible (Ex bit and bit 1 are swapped, bit 2 and bit 3 are swapped) For example: 22: 010110 --> 41: 101001 10: 1010 --> 5 : 0101 """ """ We can approach this as operating on the odds bit first, and then the even bits. We can mask all odd bits with 10101010 in binary ('AA') then shift them right by 1 Similarly, we mask all even bit with 01010101 in binary ('55') then shift them left by 1. Finally, we merge these two values by OR operation. """ def swap_pair(num): # odd bit arithmetic right shift 1 bit odd = (num & int('AAAAAAAA', 16)) >> 1 # even bit left shift 1 bit even = (num & int('55555555', 16)) << 1 return odd | even |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |