美文网首页
算法位运算总结

算法位运算总结

作者: zerowd | 来源:发表于2020-05-10 23:43 被阅读0次

在位运算之前,对二进制需要掌握的基础知识

正数的二进制,例如 5
 原码是 0000 0000 0000 0000 0101
负数的二进制,例如 -5
 负数的原码是在最高位补1 :1000 0000 0000 0101
在计算机中,负数以原码的补码形式表达。
 反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
则负数的反码,例如 -5 是:1111 1111 111 1010
 那么补码为:正数的补码和原码相同,负数的补码为对该数的原码出符号为外,各位取反,然后再最后一位加1.
 比如 -5 (16位)
 原码为:1000 0000 0000 0101
 反码为:1111 1111 1111 1010
 补码为:1111 1111 1111 1011
主要知识点:
 正数的反码和补码都与原码相同
 而负数的反码为对该数的原码除符号位外各位取反
 负数的补码为对该数的原码除符号位外各位取反,然后再最后一位加1
5: 1111 1111 1111 1011
-5: 0000 0000 0000 0101
5 &(-5): 0000 0000 0000 0001
所以 5 & (-5) 得到最低位的1

5: 1111 1111 1111 1011
~5: 0000 0000 0000 0100
5&(~5) 0000 0000 0000 0000
所以 5&(~5) = 0



位运算

XOR 异或

异或:相同为0,不同为1,也可以用 ‘不进位加法’来理解

异或的操作特点:

1、x ^ 0 = x

2、x ^ 1s = ~x //注意1s =~0 1s是全部都是1 ,就是0取反

3、x ^ (~x) = 1s 例如: 1100 0011 = 1111

4、x ^ x = 0

5、c = a ^ b => a ^ c =b,b ^ c =a //交换2个数

6、a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c

实战要点:

判断奇偶:

  • x % 2 == 1 ---> (x & 1) == 1 //判断奇数

    x % 2 == 0 ---> (x & 1) == 0 //判断偶数

  • x >> 1 ——> x / 2

    即:x = x/2 ; -> x = x >> 1;

    mid = (left + right) / 2 --> mid = (left + right) >> 1

  • x = x & (x-1)清零最低位的1

    例如:2的二进制是 10 (x - 1) = 01 => 00

  • x & -x => 得到最低位的1

  • x & ~x => 0

相关文章

  • 算法位运算总结

    在位运算之前,对二进制需要掌握的基础知识 正数的二进制,例如 5原码是 0000 0000 0000 0000 0...

  • 算法总结-位运算

    位运算符用于二进制运算 与运算 & 二进制数 n & 1 的结果为n的末位 异或运算 ^ 长度为 L 的二进制数 ...

  • leetcode算法总结之位运算

    First learn computer science and all the theory. Next dev...

  • 递归、回溯、分治

    递归 (1)子集 方式一:递归算法 方式二:位运算算法 (2)子集II 方法一:递归算法 方法二:位运算 (3)组...

  • 位运算 算法

    位运算 算法 -1.与: &或: |非: !异或 : ^ 相同为 0, 不同为 1int 32 位 -> int ...

  • 算法

    算法实战 | 图像处理, 宽度优先搜索, 位运算

  • 位运算总结

    一、数据类型的位数 二、位运算符 三、常用计算 判断int型变量a是奇数还是偶数 求平均值 对于一个大于0的整数,...

  • 位运算小算法

    判断一个数是不是2的N次幂(能被2整除)swift篇 按照二进制中只有一个1的时候才是2的N次幂,例如000000...

  • 算法很美--位运算

    2019/3/22更新 题目1 : Exam07_TwoSingleNumbers时间限制:2000ms单点时限:...

  • 算法技巧-位运算

    将只有两种状态的一组对象用二进制进行表示是一种常用建模方法,因此位运算技巧是比较重要的。 位操作经典题目:37. ...

网友评论

      本文标题:算法位运算总结

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