2022-01-31 19:30:05 +01:00
|
|
|
package love.distributedrebirth.numberxd.alu;
|
|
|
|
|
|
2022-02-02 18:12:59 +01:00
|
|
|
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
|
2022-02-04 22:44:11 +01:00
|
|
|
import love.distributedrebirth.numberxd.BaseGetậl;
|
|
|
|
|
import love.distributedrebirth.numberxd.base2t.BaseIteratorOctal;
|
|
|
|
|
import love.distributedrebirth.numberxd.base2t.BaseNumber;
|
|
|
|
|
import love.distributedrebirth.numberxd.base2t.part.T08PartOctal;
|
2022-02-02 18:12:59 +01:00
|
|
|
|
|
|
|
|
@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
|
2022-01-31 19:30:05 +01:00
|
|
|
public class ŌctopǔsALU {
|
|
|
|
|
|
2022-02-04 22:44:11 +01:00
|
|
|
public <T extends BaseGetậl<T,V>,V extends BaseNumber<V>> BaseGetậl<T,V> math(BaseGetậl<T,V> opA, BaseGetậl<T,V> opB) {
|
|
|
|
|
BaseIteratorOctal bioA = opA.iteratorOctalsByClone();
|
|
|
|
|
BaseIteratorOctal bioB = opB.iteratorOctalsByClone();
|
|
|
|
|
BaseIteratorOctalALU bioALU = new BaseIteratorOctalALU(bioA, bioB);
|
|
|
|
|
BaseGetậl<T,V> result = opA.toClone(bioALU);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class BaseIteratorOctalALU implements BaseIteratorOctal {
|
|
|
|
|
|
|
|
|
|
private final BaseIteratorOctal bioA;
|
|
|
|
|
private final BaseIteratorOctal bioB;
|
|
|
|
|
|
|
|
|
|
public BaseIteratorOctalALU(BaseIteratorOctal bioA, BaseIteratorOctal bioB) {
|
|
|
|
|
this.bioA = bioA;
|
|
|
|
|
this.bioB = bioB;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean hasNext() {
|
|
|
|
|
return bioA.hasNext();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public T08PartOctal next() {
|
|
|
|
|
T08PartOctal valA = bioA.next();
|
|
|
|
|
T08PartOctal valB = bioB.next();
|
|
|
|
|
|
|
|
|
|
int valANum = valA.BȍőnRangTelNul();
|
|
|
|
|
int valBNum = valB.BȍőnRangTelNul();
|
|
|
|
|
|
|
|
|
|
var valResultNum = valANum + valBNum;
|
|
|
|
|
|
|
|
|
|
if (valResultNum > valA.BãßInstances().length) {
|
|
|
|
|
valResultNum = valA.BãßInstances().length -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
T08PartOctal valResult = T08PartOctal.values()[valResultNum];
|
|
|
|
|
|
|
|
|
|
return valResult;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-01-31 19:30:05 +01:00
|
|
|
}
|