> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/man/stdbit/stdc_bit_width.3.md).

# stdc\_bit\_width.3

`stdc_bit_width` — 查找表示整数所需的位数

## 名称

`stdc_bit_width`

## 概要

`Lb libc`

```c
#include <stdbit.h>
```

```c
unsigned int stdc_bit_width_uc(unsigned char value);
unsigned int stdc_bit_width_us(unsigned short value);
unsigned int stdc_bit_width_ui(unsigned int value);
unsigned int stdc_bit_width_ul(unsigned long value);
unsigned int stdc_bit_width_ull(unsigned long long value);
unsigned int stdc_bit_width(value);
```

## 描述

`stdc_bit_width_`*type*() 函数族返回表示 `value` 所需的位数，其中 `value` 的类型分别为 `unsigned char`、`unsigned short`、`unsigned int`、`unsigned long` 或 `unsigned long long`，对应 *type* 为 **uc**、**us**、**ui**、**ul** 或 **ull**。类型通用宏 `stdc_bit_width`(*value*) 根据 `value` 的类型选择适当的 `stdc_bit_width_`*type*() 函数。

函数 `stdc_bit_width_ui`、`stdc_bit_width_ul` 和 `stdc_bit_width_ull` 分别与 4.3BSD 的 fls(3)、flsl(3) 和 flsll(3) 函数相同，只是操作的是无符号值而非有符号值。

## 返回值

返回表示 `value` 所需的最少位数。如果 `value` 为零，则返回值为零。否则为 1 + log₂(`value`)。

## 参见

bit\_fls(3), fls(3), flsl(3), flsll(3), [stdbit(3)](https://github.com/FreeBSD-Ask/freebsd-man-sc/tree/main/stdbit/stdbit.3.md), stdc\_count\_leading\_zeros(3), [stdc\_first\_leading\_one(3)](/man/stdbit/stdc_first_leading_one.3.md)

## 标准

`stdc_bit_width_`*type*() 函数族和 `stdc_bit_width` 类型通用宏遵循 -isoC-2023 标准。

## 历史

`stdc_bit_width_`*type*() 函数族和 `stdc_bit_width` 类型通用宏在 FreeBSD 15.1 中添加。

## 作者

Robert Clausecker <fuz@FreeBSD.org>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/man/stdbit/stdc_bit_width.3.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
