this.symbol = symbol;
}
+ /**
+ * Returns if the Bit is binary, this is only true for <code>ZERO</code> and <code>ONE</code>.
+ *
+ * @return true if and only if <code>this == ONE || this == ZERO</code>
+ */
+ public boolean isBinary()
+ {
+ return this == ONE || this == ZERO;
+ }
+
@Override
public Bit and(Bit other)
{
return fromTable(AND_TABLE, this, other);
}
+ public static void and(Bit[] dst, Bit[] src)
+ {
+ for (int i = 0; i < dst.length; i++)
+ dst[i] = dst[i].and(src[i]);
+ }
+
@Override
public Bit or(Bit other)
{
return fromTable(OR_TABLE, this, other);
}
+ public static void or(Bit[] dst, Bit[] src)
+ {
+ for (int i = 0; i < dst.length; i++)
+ dst[i] = dst[i].or(src[i]);
+ }
+
@Override
public Bit xor(Bit other)
{
return fromTable(XOR_TABLE, this, other);
}
+ public static void xor(Bit[] dst, Bit[] src)
+ {
+ for (int i = 0; i < dst.length; i++)
+ dst[i] = dst[i].xor(src[i]);
+ }
+
@Override
public Bit not()
{
return bits;
}
+ public BitVector toVector()
+ {
+ return BitVector.of(this, 1);
+ }
+
public BitVector toVector(int length)
{
return BitVector.of(this, length);
return fromTable(JOIN_TABLE, this, other);
}
+ public static void join(Bit[] dst, Bit[] src)
+ {
+ for (int i = 0; i < dst.length; i++)
+ dst[i] = dst[i].join(src[i]);
+ }
+
@Override
public String toString()
{
return values()[2 + (value & 1)];
}
+ public static Bit of(boolean binaryValue)
+ {
+ return binaryValue ? ONE : ZERO;
+ }
+
public static Bit parse(String s)
{
Bit bit = SYMBOL_MAP.get(s);