位运算

作者: watermountain | 来源:发表于2019-02-22 11:13 被阅读0次

思想是:

    两个数字相加分解成 :不进位的和  + 每一位相加的进位


困惑:

    负整数运算也可以,因为补码运算,不存在减法。

    所以反复迭代,一直到所有的进位为0


class Solution {

    /**

    A^B 表示A + B 中每位不进位的和,

    (A&B) << 1 表示 A+B 表示每一位相加的进位

    A,B 分别可取00,01,10,11.

    组合位00与01, 00与10, 00与11, 01与10, 01与11, 10与11.

分析:

    A: 0b01, B: 0b10, A^B = 0b11 A&B = 0b00

    A: 0b01, B: 0b11, A^B = 0b10, A&B = 0b01

    A: 0b10, B:0b11, A^B = 0b01, A&B = 0b10

    */

    public int getSum(int a, int b) {

        if (b ==0) {

            return a;

        }

        int sumValue = a ^ b;

        int carray = (a & b) << 1;

        while (carray !=0 ) {

            a = (sumValue ^ carray);

            b = (sumValue & carray) << 1;

            sumValue = a;

            carray = b;

        }

        return sumValue;

    }

}

基础:


1. 在处理整形数值时,可以直接对组成整形数值的各个位进行操作。可以使用屏蔽技术获得整数中的各个位。

    位运算符包括:

        & : “与”

        | : ”或“

        ^ : “异或”

        ~ : “非”

    & 和 | 运算符应用于布尔值,得到的结果也是布尔值。不按“短路”方式计算。即在得到结果之前,一定要计算两个操作数的值。

2. “>>” 将二进制位进行右移;“<<” 将二进制位进行左移;

    当需要建立位模式屏蔽某些位时,右移位或左移位运算符十分方便。

    int fourthBitFromRight = (n & (1<<3)) >> 3;

3. && 和 || 的运算按短路方式求值。

    通过运用2 的幂次方的& 运算可以将其他位屏蔽掉,而只保留其中的某一位。

相关文章

  • 3、小众运算符の大课堂(一)

    较为简单の位运算符: & 位与运算| 位或运算^ 位异或运算~ 位取反运算 举例: 要做位运算,首先要把数据转...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • 位运算及用位运算实现权限控制

    请自行补习位运算相关知识 位运算 位运算示例 权限控制

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 位运算

    位运算 1. &:按位与 规律:一假则假任何位上的数和1相&得到的结果还是那个数 2. |:按位或 规律:一真则真...

  • 位运算

    https://leetcode.com/problems/gray-code/description/这个位运算...

  • 位运算

    位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不...

  • 位运算

    1.不用加减乘除做加法 解法:分为三步①各位相加不进位,即先按位异或;②做进位,按位与并左移位;③结果相加,直至没...

  • 位运算

    位运算不仅可以简化某些复杂的操作,而且具有更快的计算速度。典型的应用就是除法,交换两个数值,以及在一个数组中寻找只...

网友评论

      本文标题:位运算

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