每日一題 No 20 a b(位操作符) 正負數

2021-07-30 15:26:04 字數 571 閱讀 3573

昨天寫了2個正數相乘,今天讓我們來用位操作符寫2個正負數相乘吧,給定2個數a,b,計算a*b

a ba*b的值

155 -152

-23560

負數乘法跟正數乘法運算一樣。我們只需要把負數變成正數並且記錄哪個是負數,最後根據這個二個數是否是負數的情況來判斷r是否為負數。

#include 

using

namespace

std;

int add(int a, int b)

int s = a ^ b;

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

return add(s, c);

}bool isfushu(int a)

int multi(int a, int b)

if (isfushu(b))

int r = 0;

while (b)

a <<= 1;

b >>= 1;

}if (za != zb)

return r;

}int main()

每日一題 No 21 a b(位操作符) 正整數

昨天寫了2個數相乘,今天讓我們來用位操作符寫2個正整數相除吧,給定2個數a,b,計算a b,並輸出商和餘數 a ba b的商 a b的餘數 155 152 1 3具體的看這裡,我覺得寫得特別好,反正我是看這個寫出來的 計算機數值中的乘法除法 以下是我個人對上面這個鏈結的理解,並根據理解寫出的 我們算...

LeetCode 每日一題338 位元位計數

給定乙個非負整數num。對於0 i num範圍中的每個數字i,計算其二進位制數中的1的數目並將它們作為陣列返回。示例 1 輸入 2輸出 0 1,1 示例 2 輸入 5輸出 0 1,1 2,1,2 高階 要求演算法的空間複雜度為o n 你能進一步完善解法嗎?要求在c 或任何其他語言中不使用任何內建函式...

每日一題 20 字串相乘與相加

給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 123 num2 456 輸出 56088 說明 num1 和 num2 的長度小於110。num1 和 num2 只包含數字 0 9。num1 和 ...