美文网首页
常用的位运算使用技巧总结

常用的位运算使用技巧总结

作者: 圣咸鱼 | 来源:发表于2019-01-02 19:27 被阅读0次

一些常见的二进制位的变换操作:

注: shr--右移;shl--左移;xor--异或;or--或运算;and--与运算

功能 示例 位运算
去掉最后一位 (101101->10110) x shr 1
在最后加一个0 (101101->1011010) x shl 1
在最后加一个1 (101101->1011011) x shl 1+1
把最后一位变成1 (101100->101101) x or 1
把最后一位变成0 (101101->101100) x or 1-1
最后一位取反 (101101->101100) x xor 1
把右数第k位变成1 (101001->101101,k=3) x or (1 shl (k-1))
把右数第k位变成0 (101101->101001,k=3) x and not (1 shl (k-1))
右数第k位取反 (101001->101101,k=3) x xor (1 shl (k-1))
取末三位 (1101101->101) x and 7
取末k位 (1101101->1101,k=5) x and (1 shl k-1)
取右数第k位 (1101101->1,k=4) x shr (k-1) and 1
把末k位变成1 (101001->101111,k=4) x or (1 shl k-1)
末k位取反 (101001->100110,k=4) x xor (1 shl k-1)
把右边连续的1变成0 (100101111->100100000) x and (x+1)
把右起第一个0变成1 (100101111->100111111) x or (x+1)
把右边连续的0变成1 (11011000->11011111) x or (x-1)
取右边连续的1 (100101111->1111) (x xor (x+1)) shr 1
去掉右起第一个1的左边 (100101000->1000) x and (x xor (x-1))
后四位取反 100101010->100100101 x xor 00001111
交换两个数 1010,1111(a)->1111,1010(b) a=a xor b;b=b xor a;a=a xor b

相关文章

  • 常用的位运算使用技巧总结

    一些常见的二进制位的变换操作: 注: shr--右移;shl--左移;xor--异或;or--或运算;and--与运算

  • 位运算

    参考:位运算技巧 位运算的使用 1.and运算and运算通常用于二进制取位操作,例如一个数and1的结果就是取二进...

  • 如何用位运算实现加减乘除

    由于位运算比普通的加减乘除效率要高很多,所以在在实际编程中应尽可能使用位运算代替加减乘除。以下总结我在编程中常用的...

  • 位运算使用总结

    今天总结一下,二进制在开发过程中的使用 很多人都觉得 二进制和十进制转换是件麻烦的事,所以很少去用二进制,其实二进...

  • Python基础之位运算符(含原码反码补码的通俗解释)

    目录 1 二进制 2 原码、反码、补码 3 位运算符 4 位运算符使用技巧 上回学习运算符时,漏了位运算符,因为位...

  • 位运算

    各种位运算的使用 === 1. and运算 === and运算通常用于二进制取位操作,例如一个数 and 1的结果...

  • 【总结】位运算常见技巧

    原文地址:https://juejin.cn/post/6844903645171941384[https://j...

  • 位运算使用小技巧

    背景   位运算在实际工作中可能会较少被重视,但是在有些情况下位运算会带来性能的极大提升,值得我们深入了解。同时,...

  • C 语言学习(5) ---- C语言知识汇总01

    C语言技巧汇总 元素说明常用位运算对齐,set和reset/reverse,取出相应的位等操作C语言常量整数常量,...

  • 笔记

    Java中常用的计算方法 Java异或运算总结 异或运算的性质: 异或运算是基于二进制的位运算,采用符号XO...

网友评论

      本文标题:常用的位运算使用技巧总结

      本文链接:https://www.haomeiwen.com/subject/mqltrqtx.html