* 检查掩码是否为零 * @param mask 要检查的掩码 * @returns 如果掩码所有位都为0则返回true
(mask: BitMask64Data)
| 139 | * @returns 如果掩码所有位都为0则返回true |
| 140 | */ |
| 141 | public static isZero(mask: BitMask64Data): boolean { |
| 142 | const baseIsZero = mask.base[SegmentPart.LOW] === 0 && mask.base[SegmentPart.HIGH] === 0; |
| 143 | if(!mask.segments || !baseIsZero){ |
| 144 | // 不含扩展区域,或基础区域值就不为0,直接短路 |
| 145 | return baseIsZero; |
| 146 | } |
| 147 | // 额外检查扩展区域是否都为0 |
| 148 | return mask.segments.every((seg) => seg[SegmentPart.LOW] === 0 && seg[SegmentPart.HIGH] === 0); |
| 149 | } |
| 150 | |
| 151 | /** |
| 152 | * 检查两个掩码是否相等 |
no test coverage detected