比如有兩個數字13=(1101),9=(1001),此時計算兩者的乘法可以從13的最低位往最高位遍歷,如第乙個為1,則有1001,第二位為0跳過,第三位為1,則再加上1001左移2位即100100,此時結果為101101,最後一位也是1則加上1001000,最終結果為1110101=117
**demo如下:
public static long multiply(long x, long y)
x »>= 1;
y«= 1;
} return sum;
}private static long add(long a, long b)
return sum| carryin;
}
求x/y,思路是找出滿足(2^k)* y < x 的最大k值,並使x減去該值後繼續迴圈直到x= y)
result += il << power;
x -= ypower;
} return result;
}
二進位制位運算
與運算,6 3 2 或運算 6 3 7 異或運算 6 3 5 反碼 6 7 左移 3 2 12 3 2 2 12 右移 3 1 1 3 2 1 無符號右移 3 1 1 3 2 1 按位與,當兩位同時為1時才為1如 1 1 1 1 0 0 0 1 0 6 3相當於 0110 0011 0010 2 按...
二進位制位運算
一 按位與 位全為1,結果才為1 0 0 0 0 1 0 1 0 0 1 1 1 特殊用法 清零。如果想將乙個單元清零,就是使其全部二進位制位為0,只要與乙個各位都為零的數值相與,結果為零 取乙個數中的指定位。如x 10101110要取x的低4位,用x 00001111 00001110即可 二 按...
二進位制的位運算
按位與 兩位全為1,結果為1 特殊用途 1 清零,想要將乙個單位清零,只要與乙個各位都為零的數值相與,結果為零 2 去乙個數中的指定位 如 x 10101110,取x的低四位用x 0000 1111 0000 1110即可得到 方法 找到乙個數,對應x要取的位,該數的對應位為1,其餘位為0,用此數與...