How to create a bitset in TypeScript

2 Answers

0 votes
// Using an Array of Booleans

class BitSet {
    private bits: boolean[];

    constructor(size: number) {
        this.bits = new Array(size).fill(false);
    }

    set(index: number): void {
        this.bits[index] = true;
    }

    clear(index: number): void {
        this.bits[index] = false;
    }

    get(index: number): boolean {
        return this.bits[index];
    }

    print(): void {
        const s = this.bits.map(bit => bit ? "1" : "0").join(""); // Convert array to string
        console.log(s);
    }
}

const bitset = new BitSet(8);

bitset.set(4);
bitset.print();

console.log(bitset.get(4)); // true

bitset.clear(4);
console.log(bitset.get(4)); // false

bitset.print();



/*
run:

"00001000" 
true 
false 
"00000000" 

*/

 



answered May 7 by avibootz
0 votes
// Using a single number to store the bits

class BitSet {
    private bits: number;

    constructor() {
        this.bits = 0;
    }

    set(index: number): void {
        this.bits |= (1 << index);
    }

    clear(index: number): void {
        this.bits &= ~(1 << index);
    }

    get(index: number): boolean {
        return (this.bits & (1 << index)) !== 0;
    }

    print(): void {
        console.log(this.bits.toString(2).padStart(16, '0'));
    }
}

const bitset = new BitSet();
bitset.set(4);

bitset.print();

console.log(bitset.get(4)); // true

bitset.clear(4);

console.log(bitset.get(4)); // false

bitset.print();



/*
run:

"0000000000010000" 
true 
false 
"0000000000000000"

*/

 



answered May 7 by avibootz
...