But there is no parser so you have to feed A-B not -A+B and the sign you have to keep track.
/* SUBTRACT TWO VARIABLES */
function naiveSub(base,arrOne,arrTwo) {
result=[];
for (i=0;i<length;i++){
j=0;
if (arrOne[i]<arrTwo[i]) {
arrOne[i]+=base;
j=i;
while (arrOne[j+1]==0) { arrOne[j+1]+=base-1; j++; }
arrOne[j+1]+=-1;
}
j=0;
result[i]=arrOne[i]-arrTwo[i];
}
if (result[i-1]==0) result.splice(i-1, 1);
}
**********************************************
<SCRIPT LANGUAGE="Javascript">
/*MULTIPLY TWO VARIABLES*/
function naiveMult(base,arrOne,arrTwo) {
document.calc.trash.value="hello";
}
/* SUBTRACT TWO VARIABLES */
function naiveSub(base,arrOne,arrTwo) {
result=[];
for (i=0;i<length;i++){
j=0;
if (arrOne[i]<arrTwo[i]) {
arrOne[i]+=base;
j=i;
while (arrOne[j+1]==0) { arrOne[j+1]+=base-1; j++; }
arrOne[j+1]+=-1;
}
j=0;
result[i]=arrOne[i]-arrTwo[i];
}
if (result[i-1]==0) result.splice(i-1, 1);
}
/*ADD TWO VARIABLES*/
function naiveAdd(base,arrOne,arrTwo) {
remainder=0;
for (i=0;i<length;i++){
result[i]=arrOne[i]+arrTwo[i]+remainder;
if (result[i]>=base) { result[i]=result[i]-base; remainder=1;}
else {remainder=0;}
}
if (remainder==1) result[i++]=1; else result.splice(i, 1);
}
/*PREPARE STRING PAIR*/
function strPrep(sign,strOne,strTwo) {
document.calc.trash.value="2";
arrOne=strOne.split("");
arrTwo=strTwo.split("");
arrOne.reverse();
arrTwo.reverse();
if (arrOne.length>=arrTwo.length) {length=arrOne.length;} else {length=arrTwo.length;}
for (i=0;i<length;i++){
arrOne[i]=parseInt(arrOne[i]);
arrTwo[i]=parseInt(arrTwo[i]);
if (isNaN(arrOne[i])) arrOne[i] = 0;
if (isNaN(arrTwo[i])) arrTwo[i] = 0;
}
}
/* MULTIPLY Container*/
function multWrap(sign,strEval,strBase){
strOne=adder[0];
strTwo=adder[1];
strPrep(strOne,strTwo);
naiveMult(base,arrOne,arrTwo);
out=result.reverse().toString();
document.calc.result.value=out;
}
/* SUBTRACTION Container*/
function subWrap(sign,strEval,strBase){
tONE=parseInt(subtract[0]);
tTWO=parseInt(subtract[1]);
if(tONE<tTWO) {strOne=subtract[1];strTwo=subtract[0];}
else {strOne=subtract[0];strTwo=subtract[1];}
strPrep(sign,strOne,strTwo);
naiveSub(base,arrOne,arrTwo);
out=result.reverse().toString();
document.calc.result.value=out;
}
/* ADDITION Container*/
function addWrap(sign,strEval,strBase){
strOne=adder[0];
strTwo=adder[1];
strPrep(strOne,strTwo);
naiveAdd(base,arrOne,arrTwo);
out=result.reverse().toString();
document.calc.result.value=out;
}
/*PARSE THE STRING*/
function parser(strEval,strBase){
document.calc.trash.value="2";
//sign="*";
//multiply=strEval.split("*");
//multWrap(sign,multiply,strBase)
sign="-";
subtract=strEval.split("-");
subWrap(sign,subtract,strBase);
//sign="+";
//adder=strEval.split("+");
//addWrapper(sign,adder,strBase);
}
/*[MAIN PROGRAM]*/
/*[TAKE INPUT FROM FORM] [PARSE THE STRING] [CALCULATE RESULT]*/
/*[GENERIC CALCULATIONS] [USING BIGNUMB OPERATORS] [IN ANYBASE] [UPON OPERANDS] */
function fetchValues(){
strEval = document.calc.eval.value;
strBase = document.calc.formbase.value;
document.calc.trash.value="1";
base=parseInt(strBase);
parser(strEval,strBase);
}
/*GLOBAL*/
var subtract = [];
var adder = [];
var arrOne = [];
var arrTwo = [];
var result = [];
length; base=10;temp="";
</SCRIPT>
<HTML>
<body onload="fetchValues()">
<FORM name=calc onSubmit="fetchValues(); return false;">
BASE <input type="text" name="formbase" value="10" size="4"><br>
<input type=submit name="calc" value="Calc"><input type="text" name="eval" value="100-7" size="80"><br>
RESULT<input type="text" name="result" value="" size="80"><br>
Trash<input type="text" name="trash" value="" size="80"><br>
</FORM>
</BODY>
</HTML>