常見的二進位制位的變換操作
阿新 • • 發佈:2020-11-17
列舉一些常見的二進位制位的變換操作 摘自https://blog.csdn.net/a1351937368/article/details/77746574/
去掉最後一位 101101->10110 x >> 1 在最後加一個0 101101->1011010 x << 1 在最後加一個1 101101->1011011 (x << 1) + 1 把最後一位變成1 101100->101101 x | 1 把最後一位變成0 101101->101100 (x | 1) - 1 最後一位取反 101101->101100 x ^ 1 把右數第K位變成1 101001->101101,k=3 x | (1 << (k - 1)) 把右數第K位變成0 101101->101101,k=3 x & ~(1 << (k - 1)) 右數第k位取反 101001->101101,k=3 x ^ (1 << (k - 1)) 取末三位 1101101->101 x & 7 取末k位 1101101->1101,k=5 x & (1 << k - 1) 取右數第k位 1101101->1,k=4 x >> (k - 1) & 1 把末k位變成1 101001->101111,k=4 x | (1 << k - 1) 末k位取反 101001->100110,k=4 x ^ (1 << k - 1) 把右邊連續的1變成0 100101111->100100000 x & (x + 1) 把右起第一個0變成1 100101111->100111111 x | (x + 1) 把右邊連續的0變成1 11011000->11011111 x | (x - 1) 取右邊連續的1 100101111->1111 (x ^ (x + 1)) >> 1 去掉右起第一個1的左邊 100101000->1000 x & (x ^ (x - 1))