#include<bits/stdc++.h>
using namespace std;
long long add(long long a,long long b){
long long ans=a;
while(b!=0){
ans=a^b;
b=(a&b)<<1;
a=ans;
}
return ans;
}
long long mine(int a,int b){
return add(a,add(~b,1));
}
long long muti(long long a,long long b){
long long ans=0;
while(b){
if(b&1)ans=add(ans,a);
a<<=1;
b>>=1;
}
return ans;
}
//一般情況
long long ca(long long a,long long b){
long long x=a<0? abs(a):a;
long long y=b<0? abs(b):b;
long long ans=0;
for (int i = 30; i >=0 ; i=mine(i,1)) {
if ((x >> i) >= y) {
ans |= (1 << i);
x = mine(x, y << i);
}
}
return a<0^b<0 ?abs(ans):ans;
}
long long pqow(long long a,long long b){
long long ans=1;
while(b){
if(b&1)ans= muti(a,ans);
a=muti(a,a);
b>>=1;
}
return ans;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
long long a,b;
cin>>a>>b;
cout<<add(a,b)<<'\n';
cout<<mine(a,b)<<'\n';
cout<<muti(a,b)<<'\n';
cout<<ca(a,b)<<'\n';
cout<<pqow(a,b)<<'\n';
}
二進位制運算加減乘除+快速冪
相關文章
- 位運算實現加減乘除
- N位二進位制數加減法運算圖靈機圖靈
- MongoDB 中的【加減乘除】運算MongoDB
- 大資料的運算加減乘除大資料
- 二進位制與二進位制運算
- Verilog實現加減乘除運算
- 二進位制、位運算、位移運算
- NumPy 簡單算術:加減乘除及其他運算
- 三個數字的加減乘除模運算
- 浮點數的加減乘除運算細節
- java二進位制運算十進位制(精確運算)Java
- 有趣的二進位制2—高效位運算
- BZOJ3329: Xorequ(二進位制數位dp 矩陣快速冪)矩陣
- 超大整數的加減乘除計算方法
- BigDecimal加減乘除運算,保留2位小數點,初始化,與0的比較Decimal
- 十六進位制減法計算
- 二進位制轉十進位制快速方法
- JavaScript浮點數加減乘除精確計算JavaScript
- 7-2 算術入門之加減乘除
- 位運算(一):二進位制中1的個數
- 大資料帶來信貸“四則運算”:金融生態需要“加減乘除”大資料
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- 二進位制轉十進位制快速轉換方法
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 用C#實現二進位制的減法(包括二進位制小數)C#
- JS加減乘除位移方法封裝JS封裝
- 簡單的加減乘除(遞迴)遞迴
- JavaScript加減乘數運算JavaScript
- 如何用位運算實現整數的加減法
- 位運算--求一個 數二進位制中1的個數
- 加強版二進位制讀寫器
- 不用加減乘除做加法(Java實現)Java
- JS 加減乘除 尤其是減法精度問題JS
- Java二進位制和位運算,這一萬字準能餵飽你Java
- 計算機中的二進位制計算機
- 二進位制數的運算原理與閘電路實現
- 簡單電路實踐——電路與二進位制運算
- 進位制詳解:二進位制、八進位制和十六進位制