只用 操作實現 , , 操作

2021-06-09 02:12:09 字數 766 閱讀 1125

減法:a-b = a + (-b)

乘法:a*b相當於將a累加abs(b)次

除法:相當於將abs(a)減去-abs(b) 的次數

//求lhs的反面值rhs,即求rhs使得lhs + rhs = 0

int negate(int lhs)

return ret; }

int abs(int lhs)//返回i的絕對值

//lhs - rhs = lhs + (-rhs)

int subtract(int lhs, int rhs)

int multiply(int lhs, int rhs)

//lhs, rhs符號不同

bool diff(int lhs, int rhs)

int division(int lhs, int rhs)

int step = (rhs>0)?negate(rhs):rhs;

int ret = 0;

for(int sum=abs(lhs); sum+rhs>=0; sum+=rhs)

++ret;

return diff(lhs,rhs)?negate(ret):ret; }

簡單測試:

資料結構 只用位運算實現加減乘除操作

實現加法 public class arithmetic 兩數之差 a b實際上就是a b 在實際中做減法時,b是用補碼 取反 1 param a param b return public static int substract int a,int b 求乙個數的相反數 取反再 1 param ...

假如作業系統不用中斷,只用佇列

假如作業系統不用中斷,只用佇列 這個就要看下作業系統的定時器的實現 cmux最多支援80多個串列埠通道,作業系統對中斷bai訊號的處理實際是對硬體du中斷的一種模擬,cpu在zhiintr引腳上接到乙個中斷請dao求訊號,如果此時if 1,cpu就會在當前指令執行完以後開始響應外部的中斷請求,這時,...

實現除法操作

一道演算法題,涉及到了二進位制的位操作,借這個機會整理一下相關的知識點,並且在這道演算法題中進行了實踐 本文的解法來自於該演算法題的一篇討論。對除數和被除數實現除法運算,其中不使用乘法 除法和求餘操作,返回對應的商。如,input dividend 10,divisor 3 output 3 cla...