2021-05-07 16:23:15 +08:00
|
|
|
|
module es {
|
2023-03-13 23:32:24 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 位操作类,用于操作一个位数组。
|
|
|
|
|
|
*/
|
2021-05-07 16:23:15 +08:00
|
|
|
|
export class Bits {
|
2023-03-13 23:32:24 +08:00
|
|
|
|
private _bit: { [index: number]: number } = {};
|
2021-05-07 16:23:15 +08:00
|
|
|
|
|
2023-03-13 23:32:24 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 设置指定位置的位值。
|
|
|
|
|
|
* @param index 位置索引
|
|
|
|
|
|
* @param value 位值(0 或 1)
|
|
|
|
|
|
*/
|
2021-05-07 16:23:15 +08:00
|
|
|
|
public set(index: number, value: number) {
|
|
|
|
|
|
this._bit[index] = value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-03-13 23:32:24 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 获取指定位置的位值。
|
|
|
|
|
|
* @param index 位置索引
|
|
|
|
|
|
* @returns 位值(0 或 1)
|
|
|
|
|
|
*/
|
2021-05-07 16:23:15 +08:00
|
|
|
|
public get(index: number): number {
|
|
|
|
|
|
let v = this._bit[index];
|
|
|
|
|
|
return v == null ? 0 : v;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-03-13 23:32:24 +08:00
|
|
|
|
|
2021-05-07 16:23:15 +08:00
|
|
|
|
}
|