add BitVector.toLong()
authoradam <adam@megacz.com>
Thu, 26 Jun 2008 23:59:19 +0000 (00:59 +0100)
committeradam <adam@megacz.com>
Thu, 26 Jun 2008 23:59:19 +0000 (00:59 +0100)
src/edu/berkeley/fleet/api/BitVector.java

index 9282200..f8127bf 100644 (file)
@@ -84,6 +84,17 @@ public class BitVector {
                 return false;
         return true;
     }
+
+    /** WARNING: be careful -- future Fleets may be more than 64 bits wide! */
+    public long toLong() {
+        if (length() > 64)
+            throw new RuntimeException("a " + length() + "-bit BitVector cannot fit in a Java long");
+        long ret = 0;
+        for(int i=0; i<64; i++)
+            if (i<length() ? get(i) : get(length()-1))
+                ret |= (1L << i);
+        return ret;
+    }
 }