IntTrailingZeroCount
Description
Number of trailing zero bits (equivalent to the largest power of two that divides the value).
Parameters
| Name | Direction | Description |
|---|---|---|
value |
in | Integer to inspect. |
Success
Returns the trailing-zero count as a u64. Returns 0 when value is zero. The integer is not modified.
Failure
Function cannot fail.
Usage example (Cross-references)
Usage examples (Cross-references)
- In
Int.c:426:
}
u64 IntTrailingZeroCount(const Int *value) {
ValidateInt(value);- In
Int.c:463:
ValidateInt(value);
return !IntIsZero(value) && IntBitLength(value) == IntTrailingZeroCount(value) + 1;
}- In
Math.c:2651:
///
static bool test_m28_trailing_zero_invalid_deadend(void) {
WriteFmt("Testing IntTrailingZeroCount validation on invalid Int\n");
Int invalid = {0};- In
Math.c:2655:
Int invalid = {0};
(void)IntTrailingZeroCount(&invalid);
return false;- In
Access.c:144:
bool test_int_trailing_zero_count(void) {
WriteFmt("Testing IntTrailingZeroCount\n");
DefaultAllocator alloc = DefaultAllocatorInit();- In
Access.c:151:
Int zero = IntInit(&alloc.base);
bool result = IntTrailingZeroCount(&value) == 4;
result = result && (IntTrailingZeroCount(&zero) == 0);- In
Access.c:152:
bool result = IntTrailingZeroCount(&value) == 4;
result = result && (IntTrailingZeroCount(&zero) == 0);
IntDeinit(&value);- In
Access.c:322:
bool result = (IntBitLength(&value) == 6u);
result = result && (IntTrailingZeroCount(&value) == 3u);
IntDeinit(&value);
Last updated on