home *** CD-ROM | disk | FTP | other *** search
/ Tutto per Internet / Internet.iso / soft95 / Java / espints / espinst.exe / classes / espresso / Bits.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-02-28  |  1.7 KB  |  105 lines

  1. package espresso;
  2.  
  3. class Bits {
  4.    private int[] bits;
  5.    static final int wordmask = 31;
  6.    static final int wordshift = 5;
  7.    static final int wordlen = 32;
  8.  
  9.    public String toString() {
  10.       char[] var1 = new char[this.bits.length * 32];
  11.  
  12.       for(int var2 = 0; var2 < this.bits.length * 32; ++var2) {
  13.          var1[var2] = (char)(this.member(var2) ? 49 : 48);
  14.       }
  15.  
  16.       return new String(var1);
  17.    }
  18.  
  19.    public void orSet(Bits var1) {
  20.       this.sizeTo(var1.bits.length);
  21.  
  22.       for(int var2 = 0; var2 < var1.bits.length; ++var2) {
  23.          this.bits[var2] |= var1.bits[var2];
  24.       }
  25.  
  26.    }
  27.  
  28.    public void andSet(Bits var1) {
  29.       this.sizeTo(var1.bits.length);
  30.  
  31.       for(int var2 = 0; var2 < var1.bits.length; ++var2) {
  32.          this.bits[var2] &= var1.bits[var2];
  33.       }
  34.  
  35.    }
  36.  
  37.    public void assign(Bits var1) {
  38.       this.sizeTo(var1.bits.length);
  39.  
  40.       for(int var2 = 0; var2 < var1.bits.length; ++var2) {
  41.          this.bits[var2] = var1.bits[var2];
  42.       }
  43.  
  44.    }
  45.  
  46.    public boolean member(int var1) {
  47.       return 0 <= var1 && var1 < this.bits.length << 5 && (this.bits[var1 >>> 5] & 1 << (var1 & 31)) != 0;
  48.    }
  49.  
  50.    public void excl(int var1) {
  51.       if (var1 >= 0) {
  52.          this.sizeTo((var1 >>> 5) + 1);
  53.          this.bits[var1 >>> 5] &= ~(1 << (var1 & 31));
  54.       }
  55.  
  56.    }
  57.  
  58.    public void incl(int var1) {
  59.       if (var1 >= 0) {
  60.          this.sizeTo((var1 >>> 5) + 1);
  61.          this.bits[var1 >>> 5] |= 1 << (var1 & 31);
  62.       }
  63.  
  64.    }
  65.  
  66.    public Bits dup() {
  67.       int[] var1 = new int[this.bits.length];
  68.       System.arraycopy(this.bits, 0, var1, 0, this.bits.length);
  69.       return new Bits(var1);
  70.    }
  71.  
  72.    public void clear() {
  73.       for(int var1 = 0; var1 < this.bits.length; ++var1) {
  74.          this.bits[var1] = 0;
  75.       }
  76.  
  77.    }
  78.  
  79.    private void sizeTo(int var1) {
  80.       if (this.bits.length < var1) {
  81.          int[] var2 = new int[var1];
  82.          System.arraycopy(this.bits, 0, var2, 0, this.bits.length);
  83.          this.bits = var2;
  84.       }
  85.  
  86.    }
  87.  
  88.    public Bits(int var1, int var2) {
  89.       this();
  90.  
  91.       for(int var3 = var1; var3 < var2; ++var3) {
  92.          this.incl(var3);
  93.       }
  94.  
  95.    }
  96.  
  97.    public Bits(int[] var1) {
  98.       this.bits = var1;
  99.    }
  100.  
  101.    public Bits() {
  102.       this(new int[1]);
  103.    }
  104. }
  105.