1 /*2 * unit Plus: Find and + corresponding bit operation, analysis truth table to derive is bitwise XOR ^3 * Carry: Can be used <<, but to determine whether there is a rounding operation, you need & to judge. 4 * Add the operation to not carry, the code is as follows:5 *6 */7LL QuickAdd (intXinty) {8 intXR = x ^ y;//Plus9 intnd = x & y;//Statistics RoundingTen while(nd) { One intXR1 =XR; A intNd1 = nd <<1; -XR = xr1 ^ nd1;//Plus -nd = XR1 & nd1;//Statistics Rounding the } - returnXR; - } - /* + * will be subtracted from the opposite number (complement) and added is subtraction - */ +LL Quickminus (intXintY) {//take Minuend's complement and perform addition Ay = ~y ^1;//take the complement at intXR = x ^y; - intnd = x &y; - while(nd) { - intXR1 =XR; - intNd1 = nd <<1; -XR = xr1 ^Nd1; innd = XR1 &Nd1; - } to returnXR; +}
[Analog] bit operations for adding and subtracting