打算写一个数据类型,用 bitset
写的三字节整形,加法运算出现问题,加法结果为0,不知道哪里的问题
midint operator + (midint a) {
midint temp;
temp.self = this->self;
for(int i=0; i<24; i++) {
cout<<endl;
if(!(temp.self[i]&&a.self[i]))temp.self[i]=a.self[i]^temp.self[i];
else{
short j=i;
while(j++){
if(j>=24){
cout<<"midint overflow!\n";
exit(3221225477u);
}
if(!temp.self[j]){
temp.self[j]=1;
break;
}
if(!a.self[j]){
a.self[j]=1;
break;
}
}
}
}
//A^B+(A&B)<<1;
}