Lir

Алгоритм сложения двоичных чисел

Lir
Sep 6th, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         //Сложение двух двоичных чисел
  2.         private function additionNumbers(firstNumber:Array, secondNumber:Array):void{
  3.             trace("-----------------------------------------------------start");
  4.             trace("firstNumber before = " + firstNumber.toString());
  5.             trace("secondNuber before = " + secondNumber.toString());
  6.            
  7.             //Contains result number
  8.             var result:Array = [];
  9.            
  10.             //Adds 0 to empty spaces in array
  11.             if (firstNumber.length < secondNumber.length){
  12.                
  13.                 //variable contains ftist number length at first
  14.                 var n:int = firstNumber.length - 1;
  15.                
  16.                 //variable contains index for first array
  17.                 var j:int = n;
  18.                
  19.                 for (var i:int = secondNumber.length - 1; i >= 0; i--){
  20.                    
  21.                     if (i > n && j >= 0){
  22.                         firstNumber[i] = firstNumber[j];
  23.                         j--;
  24.                     } else {
  25.                         firstNumber[i] = 0;
  26.                     }
  27.                 }
  28.                
  29.                
  30.             } else if (firstNumber.length > secondNumber.length) {
  31.                 //variable contains ftist number length at first
  32.                 var n:int = secondNumber.length - 1;
  33.                
  34.                 //variable contains index for first array
  35.                 var j:int = n;
  36.                
  37.                 for (var i:int = firstNumber.length - 1; i >= 0; i--){
  38.                    
  39.                     if (i > n && j >= 0){
  40.                         secondNumber[i] = secondNumber[j];
  41.                         j--;
  42.                     } else {
  43.                         secondNumber[i] = 0;
  44.                     }
  45.                 }
  46.             }
  47.            
  48.             var increaseRank:Boolean = false;
  49.             var tempRankArray:Array = [];
  50.             for (var i:int = firstNumber.length - 1; i >= 0; i--){
  51.                 //Add two numbers
  52.                 var tempRez:int = firstNumber[i] + secondNumber[i];
  53.                
  54.                 //Put in the ranks array 0
  55.                 //tempRankArray[i] = 0;
  56.                
  57.                 //If add result more then 1
  58.                 if (tempRez > 1){
  59.                    
  60.                     //Maked tempRez equals 0
  61.                     tempRez = 0;
  62.                    
  63.                     //Put for the next rank 1 in the temp rank array
  64.                     tempRankArray[i] = 1;
  65.                 }
  66.                
  67.                 //If temp rank array has 1 for the current element
  68.                 if (tempRankArray[i + 1] == 1){
  69.                     //Encriase element
  70.                     if (tempRez == 1){
  71.                         tempRez = 0;
  72.                         tempRankArray[i] = 1;
  73.                     } else {
  74.                         tempRez = 1;
  75.                     }
  76.  
  77.                 }
  78.                
  79.                 //Put in the array result
  80.                 result[i + 1] = tempRez;
  81.             }
  82.            
  83.             if (!tempRankArray[0])
  84.                 result.splice(0,1);
  85.             else
  86.                 result[0] = tempRankArray[0];
  87.    
  88.             trace("temp rank 0 = " + tempRankArray.toString());
  89.             trace("firstNumber after = " + firstNumber.toString());
  90.             trace("secondumber after = " + secondNumber.toString());
  91.             trace("tempRankarray = " + tempRankArray.toString())
  92.             trace("result = " + result);
  93.             trace("-----------------------------------------------------end");
  94.         }
Advertisement
Add Comment
Please, Sign In to add comment