Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #27456

Re: Overflow, integers and strings

Newsgroups comp.lang.javascript
Date 2015-05-01 06:18 -0700
References (6 earlier) <b378aebc-5acc-4b88-9050-6b812221cba9@googlegroups.com> <XnsA48D6DDF66B5Feejj99@194.109.133.246> <871tj08vrb.fsf@bsb.me.uk> <XnsA48D942F1A7FFeejj99@194.109.133.246> <mhvtku$rh2$1@solani.org>
Message-ID <ae0781a3-cd0f-410c-9aed-4d3f60e80c30@googlegroups.com> (permalink)
Subject Re: Overflow, integers and strings
From jonas.thornvall@gmail.com

Show all headers | View raw


Den fredag 1 maj 2015 kl. 15:04:34 UTC+2 skrev Christoph M. Becker:
> Evertjan. wrote:
> 
> > 'this' works:
> 
> Not necessarily:
> 
>     function test() {
> 
>       var a = [1], b = [2];
> 
>       function arraySwap(x,y) {
>         var tempArrName = this[y];
>         this[y] = this[x];
>         this[x] = tempArrName;
>       }
> 
>       console.log(a, b);
>       arraySwap(a, b);
>       console.log(a, b);
>     }
> 
> -- 
> Christoph M. Becker

Now i pass the original global arrays as parameters and i can see it do not work but why doesn't it work?

Have i got something wrong about variables and passing function parameters?

<SCRIPT LANGUAGE="Javascript">

// Compare numerical size of two "reversed"arrays and their indexes
// If A < B returns true otherwise false

function arrCompareSmaller(A, B)
{  
  var AA=A.length;
  var BB=B.length;
   if(AA > BB) return false;
   if(BB < AA) return true; 
      //AA = BB, compare indexes from biggest to smallest.
      for(i = AA - 1; i >= 0; i -- )
      {
         if(A[i] < B[i]) return true;
         if(A[i] > B[i]) return false;
      }
return false;
}



function arraySwap(subOne, subTwo) { // 2 different arrays expected
   var tempArrName = subOne;
   subTwo = subOne;
   subOne = tempArrName;
   // the name tempArrName will be garbagecollected automagically
};

function arraySwapIfSmaller(subOne, subTwo) { // arrays by reference
   if (arrCompareSmaller(subOne, subTwo))
      arraySwap(subOne, subTwo);
}; 



//Prepare arrays for subtraction

function prepSubt(subOne,subTwo){

//If subOne smaller need to swap arrays
//Function naiveSub need to be fed bigger-smaller, parser keep track sign
arraySwapIfSmaller(subOne,subTwo);

//Check length of biggest array store bigArr
if(subOne.length<subTwo.length) {
          shortArr = subOne.length;   bigArr = subTwo.length;
          } else {bigArr = subOne.length; shortArr = subTwo.length;}

//Parse with zeros to get same length, and make sure they are integers.     
   for (i = 0; i < bigArr; i ++ )
   {
      subOne[i] = parseInt(subOne[i]);
      subTwo[i] = parseInt(subTwo[i]);
      if (isNaN(subOne[i])) subOne[i] = 0;
      if (isNaN(subTwo[i])) subTwo[i] = 0;
   } 
document.calc.outbase.value += subOne+ " - \n";
document.calc.outbase.value += subTwo+ "\n";
}

/* SUBTRACT TWO VARIABLES */
/* THE NOTATION BASE TEN, SO FOR INDEX VALUES IF BASE 2000, DIGITVALUE IN INDEX RANGE = (0-1999)*/
/* VARIABLES base INTEGER, subOne, subTwo  ARRAYS WITH INDEX VALUES REVERSED */
/* A SINGLE "DIGITPLACE/VALUE" OF BASE, HOLD IN EACH INDEX */

function naiveSub(base, subOne, subTwo)
{
   prepSubt(subOne,subTwo);
   result=[];
   for (i = 0; i < shortArr; i ++ )
   {
      j = 0;
    // document.write(subOne[i],"-",subTwo[i],"First<br>"); 
      if (subOne[i] < subTwo[i])
      {  
         intCarry ++ ;
         subOne[i] += base;
         j = i;
         while (subOne[j + 1] == 0)
         {
            subOne[j + 1] += base - 1;
            j ++ ;
         
         }
         subOne[j + 1] += - 1;
      }
      
      j = 0;
      result[i] = subOne[i] - subTwo[i];
      intSub++;
  //  document.write(subOne[i],"-",subTwo[i],"=",result[i],"<br>"); 
  }
   while(i<bigArr) { result[i]=subOne[i];i++;}
   while (result[bigArr - 1] == 0)
   {
      result.splice(bigArr - 1, 1);
      bigArr += - 1;
   }
   return result;
}

/* RESET FORM FIELDS, FETCH BASE AND STRING TO EVALUATE */

function fetchVal()
{
   document.calc.result.value = "";
   document.calc.stats.value = "";
   document.calc.outbase.value = "";
   strEval = document.calc.eval.value;
   base = document.calc.formbase.value;
   base = parseInt(base);
}

/* SPLIT OPERAND PAIR AND DECIDE OPERATION */

function parsePair()
{
   genArr = strEval.split("-");
   return genArr;
}

/* IF BASE 10 NO CONVERSION NEEDED "ELSE" DO CONVERSION TO NEWBASE */

function ifBaseTen()
{
   if(base != 10)
   {
      arrOne = newbase(genArr[0], base);
      tempA = arrOne;
      arrTwo = newbase(genArr[1], base);
      tempB = arrTwo;
   }
   else
   {
      arrOne = genArr[0].split("").reverse();
      tempA = arrOne;
      arrTwo = genArr[1].split("").reverse();
      tempB = arrTwo;
   }
}

/* RESULT OUT TO FORM */

function resOutForm()
{

   document.calc.stats.value += "INT Mult operations = " + intMult + "\n";
   document.calc.stats.value += "INT Add operations = " + intAdd + "\n";
   document.calc.stats.value += "INT Sub operations = " + intSub + "\n";
   document.calc.stats.value += "INT Carry operations = " + intCarry + "\n";
   tempC = out.reverse();
   if(base < 11)
   {
      tempC = tempC.toString();
      tempC = tempC.replace(/,/g, '')
   }
   document.calc.result.value += " = " + tempC + "\n";
}


/* GLOBAL VARIABLES */




// Arrays holding digitplaces
arrOne = [];
arrTwo = [];
subOne = [];
subTwo = [];
tempA = [];
tempB = [];
tempArr = [];

/* MAIN FUNCTION */

function MAIN()
{  
   // Counters, adds, subtraction, multiplications
intMult = 0;
intAdd = 0;
intSub = 0;
intCarry = 0;
// Length of the operands
bigArr = 0;
shortArr = 0;
//  Fetched variables from form base and string to evaluate
base = 0;
strEval = "";
   fetchVal();
   genArr = parsePair();
   ifBaseTen();
   out = naiveSub(base, arrOne, arrTwo);
   resOutForm();
}
</SCRIPT>


<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"/></head>
<body bgcolor="gold" onload="MAIN()">
<H3>ARITHMETICS IN ANYBASE USING BIG NUMBERS</H3><P>
<FORM name=calc onSubmit="MAIN(); return false;"><B>
<input type=submit name="calc" value="Calc"> *use radiX* <input type="text" name="formbase" value="10" size="10"><br><BR>
Evaluate <input type="text" name="eval" value="3313-3315" size="300"><br>
Base conv.(rev arrays)<input type="text" name="outbase" value="" size="60"><br>
<FONT COLOR="gray">
RESULT<br>
<textarea name="result" rows="20" cols="120"></textarea><br>
STATUS</B><br>
<textarea name="stats" cols="120" rows="40" value=""></textarea>
</FORM>
</body>
</html>

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 00:11 -0700
  Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 01:29 -0700
    Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 03:31 -0700
    Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 03:33 -0700
      Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-04-30 13:38 +0200
        Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 08:20 -0700
          Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-04-30 20:37 +0200
            Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 23:46 -0700
              Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 01:01 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 01:47 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-01 10:50 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 02:04 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-01 11:08 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 04:43 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 04:46 -0700
              Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-01 10:48 +0200
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-01 10:58 +0100
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-01 14:34 +0200
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-01 14:47 +0200
                Re: Overflow, integers and strings "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-01 15:04 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 06:18 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 06:24 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 06:49 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 07:00 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 07:17 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 07:21 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 07:37 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 11:27 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 12:34 -0700
                Re: Overflow, integers and strings Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-01 22:42 +0200
                Re: Overflow, integers and strings "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-01 23:37 +0200
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-02 00:19 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-02 05:50 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-02 14:21 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-03 04:30 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-03 07:12 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-03 16:45 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-03 09:17 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-03 09:22 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 03:38 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-04 14:01 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 06:41 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-04 15:39 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 07:48 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 06:49 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 07:25 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 08:26 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 08:59 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-05 00:59 +0100
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-04 15:28 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 07:34 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-04 15:41 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 07:52 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 08:03 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 17:56 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 09:04 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 09:21 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 09:38 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 21:07 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 12:25 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 21:43 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 12:46 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 22:11 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 12:53 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 22:23 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 13:40 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 23:12 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 13:06 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 22:39 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 13:42 -0700
                Re: Overflow, integers and strings Scott Sauyet <scott.sauyet@gmail.com> - 2015-05-04 13:40 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 13:47 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 23:30 +0200
                Re: Overflow, integers and strings "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-04 23:33 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 15:53 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 13:51 -0700
                Re: Overflow, integers and strings Scott Sauyet <scott.sauyet@gmail.com> - 2015-05-04 18:00 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 18:22 -0700
                Re: Overflow, integers and strings Scott Sauyet <scott.sauyet@gmail.com> - 2015-05-04 21:38 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 18:37 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 14:00 -0700
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 09:19 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 21:24 +0200
                Re: Overflow, integers and strings wolfgang zeidler <invalid@invalid.invalid> - 2015-05-04 21:37 +0200
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 21:56 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 13:21 -0700
                Re: Overflow, integers and strings wolfgang zeidler <invalid@invalid.invalid> - 2015-05-04 22:38 +0200
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 22:46 +0200
                Re: Overflow, integers and strings "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-04 22:57 +0200
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 23:17 +0200
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-05 00:45 +0100
                Re: Overflow, integers and strings "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-06 00:01 +0200
                Re: Overflow, integers and strings Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-05 08:14 +0200
                Re: Overflow, integers and strings "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-05 23:54 +0200
                Re: Overflow, integers and strings wolfgang zeidler <invalid@invalid.invalid> - 2015-05-04 23:18 +0200
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-04 23:53 +0200
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 16:06 -0700
                Re: Overflow, integers and strings "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-05 10:26 +0200
                Re: Overflow, integers and strings Dr J R Stockton <reply1500@merlyn.demon.co.uk.invalid> - 2015-05-05 19:59 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-04 07:40 -0700
                Re: Overflow, integers and strings Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-05-05 01:10 +0100
                Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-05-01 05:03 -0700
        Re: Overflow, integers and strings Ben Bacarisse <ben.lists@bsb.me.uk> - 2015-04-30 20:36 +0100
          Re: Overflow, integers and strings jonas.thornvall@gmail.com - 2015-04-30 13:08 -0700
  Re: Overflow, integers and strings Scott Sauyet <scott.sauyet@gmail.com> - 2015-04-30 10:52 -0700

csiph-web