# std::countl_zero

< cpp‎ | numeric

定义于头文件 `<bit>` |  |
template<class T> constexpr int countl_zero(T x) noexcept; |  | (C++20 起)

返回 `x` 的值中从最高位（“左”）起连续的为 0 的位的数量。

此重载仅若 `T` 为无符号整数类型（即 unsigned char 、 unsigned short 、 unsigned int 、 unsigned long 、 unsigned long long 或扩展无符号整数类型）才参与重载决议。

### 参数

x | - | 无符号整数类型的值

### 返回值

`x` 的值中从最高位起连续的为 0 的位的数量。

### 示例

    #include <bit>
    #include <bitset>
    #include <cstdint>
    #include <initializer_list>
    #include <iostream>

    int main()
    {
        for (std::uint8_t i : { 0, 0b11111111, 0b00011100 }) {
            std::cout << "countl_zero(0b" << std::bitset<8>(i) << ") = "
                      << std::countl_zero(i) << '\n';
        }
    }

输出：

    countl_zero(0b00000000) = 8
    countl_zero(0b11111111) = 0
    countl_zero(0b00011100) = 3

### 参阅

countl_one (C++20) | 从最高位起计量连续的 1 位的数量 (函数模板)
countr_zero (C++20) | 从最低位起计量连续的 0 位的数量 (函数模板)
countr_one (C++20) | 从最低位起计量连续的 1 位的数量 (函数模板)
popcount (C++20) | 计量无符号整数中为 1 的位的数量 (函数模板)