gdxapp4d/lib-numberxd/src/main/love/distributedrebirth/numberxd/alu/ŌctopǔsALU.java

55 lines
1.6 KiB
Java
Raw Normal View History

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
}