不用加減法做加法

2021-08-03 05:36:05 字數 758 閱讀 6851

/*

這裡只能想到位運算了,思路如下:

假設a = 5,b = 17;

對應的二進位制數即為:

a:0000 0101

b:0001 0001

要想求解兩個數的和,就得分如下三步來計算:

1.計算不帶進製的兩個數的和

2.計算兩個數在計算中發生的進製

3.將不帶進製的和與發生的進製求和,得出最終結果

好了,這裡我們可以來分這三步,對兩個數求和過程進行分析:

1.計算不帶進製的兩個數的和

其結果即為:0000 0101

^ 0001 0001

--------------

0001 0100

2.計算兩個數在計算中發生的進製

2.1 其結果即為:0000 0101

& 0001 0001

--------------

0000 0001

左移後,結果為0000 0010

3.將不帶進製的和與發生的進製求和

其結果即為:0001 0100

+ 0000 0010

--------------

0001 0110

則結果即為:22

*/#include

using

namespace

std;

int add(int a,int b)

int main()

不用加減號實現加減法(java實現)

背景 好久沒接觸位運算子了,拿個小題來練練手吧 不用加減號實現加減法運算,這個題目一聽就知道要用位運算子了,先複習下位運算的基本操作吧 與運算子 如果相對應位都是1,則結果為1,否則為0 或運算子 如果相對應位都是0,則結果為0,否則為1 非運算子 按位取反運算子翻轉運算元的每一位,即0變成1,1變...

時間加減法

include stdafx.h include windows.h typedef struct tagmydate mydate 用於表示兩個時間之間的差值,負值表示慢,正值表示快 typedef struct tagtimedistance timedistance int month day...

時間加減法

1.相關資料結構 首先看time.h檔案中隊time t的定義 可以看出time t實際上是乙個整數,它記錄了儲存的是從1970年1月1日0時0分0 秒到現在經過的秒數。這裡有一點要注意,對time t資料型別的值來說,它所表示的時間不能晚於2038年1月18日19時14分07秒,否則會發生溢位。為...