Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PDP8-Simulator - myLib.cc

myLib.cc

Caricato da: Matthew
Scarica il programma completo

  1. /*
  2.  * myLib.cc
  3.  *
  4.  *  Created on: Mar 17, 2010
  5.  *      Author: matthew
  6.  */
  7.  
  8. #include <string>
  9. #include <vector>
  10. #include <math.h>
  11.  
  12. #include "myLib.h"
  13.  
  14.  
  15. void debug_message(string msg)
  16. {
  17.         //TODO: debug disabled
  18.         //cout<<"[Debug Message] "<<msg<<endl;
  19. }
  20.  
  21. void error(string msg)
  22. {
  23.         cout<<"[Fatal Error] "<<msg<<endl;
  24.         exit(0);
  25. }
  26.  
  27. string binary(int dec, int l)
  28. {
  29.         string res;
  30.         while(dec>0)
  31.         {
  32.                 if(dec%2==1)res.insert(res.begin(),'1');
  33.                 else res.insert(res.begin(),'0');
  34.                 dec/=2;
  35.         }
  36.         while(res.size()<l)
  37.         {
  38.                 res.insert(res.begin(),'0');
  39.         }
  40.         return res;
  41. }
  42.  
  43. int decimal(string bin, int a, int b)
  44. {
  45.         int sum=0;
  46.         for(int i=a; i<=b; i++)
  47.         {
  48.                 if(bin.at(i)=='1')
  49.                 {
  50.                         sum+=pow(2, b-i);
  51.                 }
  52.         }
  53.         return sum;
  54. }
  55.  
  56. string AND(string sa, string sb)
  57. {
  58.         int a = decimal(sa, 0, 11);
  59.         int b = decimal(sb, 0, 11);
  60.         return binary(a&b, 12);
  61. }