[][src]Function std::intrinsics::ctlz

pub const extern "rust-intrinsic" fn ctlz<T>(x: T) -> T where
    T: Copy
🔬 This is a nightly-only experimental API. (core_intrinsics)

intrinsics are unlikely to ever be stabilized, instead they should be used through stabilized interfaces in the rest of the standard library

Returns the number of leading unset bits (zeroes) in an integer type T.

The stabilized versions of this intrinsic are available on the integer primitives via the leading_zeros method. For example, std::u32::leading_zeros

Examples

#![feature(core_intrinsics)]

use std::intrinsics::ctlz;

let x = 0b0001_1100_u8;
let num_leading = ctlz(x);
assert_eq!(num_leading, 3);
Run

An x with value 0 will return the bit width of T.

#![feature(core_intrinsics)]

use std::intrinsics::ctlz;

let x = 0u16;
let num_leading = ctlz(x);
assert_eq!(num_leading, 16);
Run