# Function std::intrinsics::cttz

const: 1.40.0 · source · ```
pub const extern "rust-intrinsic" fn cttz<T>(x: T) -> u32where
T: Copy,
```

🔬This is a nightly-only experimental API. (

`core_intrinsics`

)## Expand description

Returns the number of trailing unset bits (zeroes) in an integer type `T`

.

Note that, unlike most intrinsics, this is safe to call;
it does not require an `unsafe`

block.
Therefore, implementations must not require the user to uphold
any safety invariants.

The stabilized versions of this intrinsic are available on the integer
primitives via the `trailing_zeros`

method. For example,
`u32::trailing_zeros`

## §Examples

```
#![feature(core_intrinsics)]
use std::intrinsics::cttz;
let x = 0b0011_1000_u8;
let num_trailing = cttz(x);
assert_eq!(num_trailing, 3);
```

RunAn `x`

with value `0`

will return the bit width of `T`

:

```
#![feature(core_intrinsics)]
use std::intrinsics::cttz;
let x = 0u16;
let num_trailing = cttz(x);
assert_eq!(num_trailing, 16);
```

Run