C 计算器没有操作员
C++ calculator without operators
我需要制作一个可以 , - , *,/,%和 ^的C 计算器。我完全无法在代码中使用 , - , *,/和%。
#include<iostream>
using namespace std;
typedef long long ll;
ll add(ll a,ll b){
if(b==0)return a;
else return add(a^b,(a&b)<<1);
}
ll sub(ll a,ll b){
if(b==0)return a;
else return sub(a^b,((~a)&b)<<1);
}
这就是我所拥有的。我不知道如何编码乘法和部门部分。有帮助吗?
ll mul(ll a,ll b){
if(b<0){
b=add(~b,1);
a=add(~a,1);
}
ll res=0;
while(b>0){
if(b&1)res=add(res,a);
a<<=1;
b>>=1;
}
return res;
}
ll div(ll a,ll b){
ll c=0,op=0;
if(a<0){
a=add(~a,1);
op^=1;
}
if(b<0){
b=add(~b,1);
op^=1;
}
if(b!=0){
while(a>=b){
a=sub(a,b);
c=add(c,1);
}
}
if(op)c=add(~c,1);
return c;
}
遵循您的代码格式,希望此解决方案有所帮助!在这里,我使用添加和减去进行乘法和分裂,使用更多的位运算符(&amp; ,, ^,〜,&&&&&&&&&lt;,>>)。您也可以参考cplusplus.com了解有关它们的更多信息。因此,在这种情况下,您可以在乘法中看到,我将钻头向左移动,因此就像将其放置到The The The Place等。如果您需要进一步的澄清,请随时寻求帮助。:)
相关文章:
- <<操作员在下面的行中工作
- C++ 与操作员不匹配<<
- 操作员C++的模棱两可的过载
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- C++中>>操作员过载时出现问题?
- NaN 上的宇宙飞船操作员
- 我在c ++矩阵计算器程序中找不到错误
- C++计算器,不能单独除以 0
- 比根<操作员
- SFINAE不能防止模棱两可的操作员过载吗?
- 什么是现实中的"endl"(或任何输出操纵器)?它是如何实现的,它如何与操作员<<一起工
- 如何正确解析子字符串,以便它们对我的新手计算器有效?
- Arduino 基础 2 计算器无法C++工作
- 为什么"delete"操作员给我访问权限冲突
- 需要有关我的平均计算器代码的建议
- C++ - 在我尝试制作一个简单的计算器时有一个"uninitialized local variable y used"警告
- 为什么使操作员成为新的专用会打破 std::shared_ptr?
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- 在这种情况下是私有的吗?试图使操作员<<过载
- C 计算器没有操作员