我正在编写一段可以处理由 4 个 uint32_t 元素构建的大整数的代码。我创建了一个名为 BigInteger 的类和一些运算符。问题是我得到了一些错误,但我不知道出了什么问题。我已将行后面的错误添加为注释。希望可以有人帮帮我。
提前致谢!
/*The big integer exist of 4 uint32_t elements, the integer is equal to leftLeftleftrightrightRight*/
#include <iostream>
#include <stdint.h>
class BigInteger {
public:
BigInteger() {
sign = 0;
leftLeft = 0;
left = 0;
right = 0;
rightRight = 0;
}
BigInteger(bool inputSign, uint32_t inputLeftLeft, uint32_t inputLeft, uint32_t inputRight, uint32_t inputRightRight){ //ERROR MESSAGE: unknown type name 'uint32_t'
sign = inputSign;
leftLeft = inputLeftLeft;
left = inputLeft;
right = inputRight;
rightRight = inputRightRight;
}
uint32_t leftLeft, left, right, rightRight;
bool sign;
};
/*This part checks if the two integers are equal*/
bool operator==(BigInteger a, BigInteger b) {
bool c;
if (a.sign == b.sign & a.left == b.left & a.leftLeft == b.leftLeft & a.right == b.right & a.rightRight == b.rightRight){
c = 1;
}
else {
c = 0;
}
return 0;
}
/*This part checks if the integer a is bigger then integer b*/
bool operator>(BigInteger a, BigInteger b) {
bool c;
if (a.leftLeft > b.leftLeft) {
c = 1;
}
else if (a.leftLeft == b.leftLeft = 0){ //ERROR MESSSAGE: expression is not assignable
if (a.left > b.left) {
c = 1;
}
else if (a.left == b.left = 0){ //ERROR MESSSAGE: expression is not assignable
if (a.right > b.right) {
c = 1;
}
else if(a.right == b.right = 0){ //ERROR MESSSAGE: expression is not assignable
if (a.rightRight > b.rightRight) {
c = 1;
}
else {
c = 0;
}
}
else {
c = 0;
}
}
else {
c = 0;
}
}
else {
c = 0;
}
return c;
}
/*This part makes the integer negative*/
BigInteger operator -(BigInteger a ){ //ERROR MESSAGE: Non-Aggregate type 'BigInteger' can not be initialized with an initializer list.
bool temp;
if(a.sign==0){
temp = 1;
}
else{
temp = 0;
}
BigInteger c = {temp, a.leftLeft, a.left, a.right, a.rightRight};
return c;
}