#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';
}
二進位制運算加減乘除+快速冪
相關文章
- 位運算實現加減乘除
- shell加減乘除運算
- Verilog實現加減乘除運算
- MongoDB 中的【加減乘除】運算MongoDB
- 二進位制與二進位制運算
- 二進位制、位運算、位移運算
- java二進位制運算十進位制(精確運算)Java
- NumPy 簡單算術:加減乘除及其他運算
- 浮點數的加減乘除運算細節
- 三個數字的加減乘除模運算
- BZOJ3329: Xorequ(二進位制數位dp 矩陣快速冪)矩陣
- BigDecimal加減乘除運算,保留2位小數點,初始化,與0的比較Decimal
- 二進位制轉十進位制快速方法
- 超大整數的加減乘除計算方法
- 十六進位制減法計算
- JavaScript浮點數加減乘除精確計算JavaScript
- 7-2 算術入門之加減乘除
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- FPGA中加減乘除運算的注意問題FPGA
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 79 不用加減乘除做加法
- 加強版二進位制讀寫器
- JS加減乘除位移方法封裝JS封裝
- 簡單的加減乘除(遞迴)遞迴
- Java二進位制和位運算,這一萬字準能餵飽你Java
- JavaScript加減乘數運算JavaScript
- 計算機中的二進位制計算機
- 進位制詳解:二進位制、八進位制和十六進位制
- 二進位制數的運算原理與閘電路實現
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- JS 加減乘除 尤其是減法精度問題JS
- 數論模運算以及快速冪小解
- 二進位制
- (二進位制)
- 十進位制——二 (八、十六 )進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 二進位制、十進位制與十六進位制相互轉化