Files
hustoj/web/cppreference-zh/chmhelp/cpp-header-bit.html
2025-08-01 12:57:54 +08:00

224 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&#26631;&#20934;&#24211;&#22836;&#25991;&#20214; &lt;bit&gt;</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_header_bit skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;</span> &lt;bit&gt;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-header.html">header</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#27492;&#22836;&#25991;&#20214;&#26159;<a href="cpp-numeric.html">&#25968;&#20540;</a>&#24211;&#30340;&#19968;&#37096;&#20998;&#12290;</p>
<table class="t-dsc-begin">
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E7.B1.BB.E5.9E.8B">&#31867;&#22411;</span></h3>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-types-endian.html"><span class="t-lines"><span>endian</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#25351;&#31034;&#26631;&#37327;&#31867;&#22411;&#30340;&#31471;&#24207;<br />
<span class="t-mark">(&#26522;&#20030;)</span></td>
</tr>
<tr>
<td colspan="2">
<h3><span class="mw-headline" id=".E5.87.BD.E6.95.B0">&#20989;&#25968;</span></h3>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-bit_cast.html"><span class="t-lines"><span>bit_cast</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23558;&#19968;&#20010;&#31867;&#22411;&#30340;&#23545;&#35937;&#34920;&#31034;&#37325;&#35299;&#37322;&#20026;&#21478;&#19968;&#31867;&#22411;&#30340;&#23545;&#35937;&#34920;&#31034;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-byteswap.html"><span class="t-lines"><span>byteswap</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx23">(C++23)</span></span></span></div>
</div>
</td>
<td>&#21453;&#36716;&#32473;&#23450;&#25972;&#25968;&#20540;&#20013;&#30340;&#23383;&#33410;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-has_single_bit.html"><span class="t-lines"><span>has_single_bit</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#26816;&#26597;&#19968;&#20010;&#25968;&#26159;&#21542;&#20026;&#20108;&#30340;&#25972;&#25968;&#27425;&#24130;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-bit_ceil.html"><span class="t-lines"><span>bit_ceil</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#19981;&#23567;&#20110;&#32473;&#23450;&#20540;&#30340;&#26368;&#23567;&#30340;&#20108;&#30340;&#25972;&#25968;&#27425;&#24130;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-bit_floor.html"><span class="t-lines"><span>bit_floor</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#19981;&#22823;&#20110;&#32473;&#23450;&#20540;&#30340;&#26368;&#22823;&#30340;&#20108;&#30340;&#25972;&#25968;&#27425;&#24130;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-bit_width.html"><span class="t-lines"><span>bit_width</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#23547;&#25214;&#34920;&#31034;&#32473;&#23450;&#20540;&#25152;&#38656;&#30340;&#26368;&#23567;&#20301;&#25968;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-rotl.html"><span class="t-lines"><span>rotl</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#31639;&#36880;&#20301;&#24038;&#26059;&#36716;&#30340;&#32467;&#26524;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-rotr.html"><span class="t-lines"><span>rotr</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#31639;&#36880;&#20301;&#21491;&#26059;&#36716;&#30340;&#32467;&#26524;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-countl_zero.html"><span class="t-lines"><span>countl_zero</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#26368;&#39640;&#20301;&#36215;&#35745;&#37327;&#36830;&#32493;&#30340; 0 &#20301;&#30340;&#25968;&#37327;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-countl_one.html"><span class="t-lines"><span>countl_one</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#26368;&#39640;&#20301;&#36215;&#35745;&#37327;&#36830;&#32493;&#30340; 1 &#20301;&#30340;&#25968;&#37327;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-countr_zero.html"><span class="t-lines"><span>countr_zero</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#26368;&#20302;&#20301;&#36215;&#35745;&#37327;&#36830;&#32493;&#30340; 0 &#20301;&#30340;&#25968;&#37327;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-countr_one.html"><span class="t-lines"><span>countr_one</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#20174;&#26368;&#20302;&#20301;&#36215;&#35745;&#37327;&#36830;&#32493;&#30340; 1 &#20301;&#30340;&#25968;&#37327;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-numeric-popcount.html"><span class="t-lines"><span>popcount</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
</div>
</td>
<td>&#35745;&#37327;&#26080;&#31526;&#21495;&#25972;&#25968;&#20013;&#20026; 1 &#30340;&#20301;&#30340;&#25968;&#37327;<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.A6.82.E8.A6.81">&#27010;&#35201;</span></h3>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="kw1">namespace</span> std <span class="br0">{</span>
<span class="co1">// bit_&shy;cast</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> To, <span class="kw1">class</span> From<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> To bit_cast<span class="br0">(</span><span class="kw4">const</span> From<span class="sy3">&amp;</span> from<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#20301;&#20132;&#25442;</span>
<span class="kw1">template</span> <span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T byteswap <span class="br0">(</span>T value<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// 2 &#30340;&#25972;&#25968;&#27425;&#24130;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">bool</span> has_single_bit<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T bit_ceil<span class="br0">(</span>T x<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T bit_floor<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> T bit_width<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#26059;&#36716;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="br0">[</span><span class="br0">[</span>nodiscard<span class="br0">]</span><span class="br0">]</span> <span class="kw4">constexpr</span> T rotl<span class="br0">(</span>T x, <span class="kw4">int</span> s<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="br0">[</span><span class="br0">[</span>nodiscard<span class="br0">]</span><span class="br0">]</span> <span class="kw4">constexpr</span> T rotr<span class="br0">(</span>T x, <span class="kw4">int</span> s<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#35745;&#25968;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">int</span> countl_zero<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">int</span> countl_one<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">int</span> countr_zero<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">int</span> countr_one<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="kw1">template</span><span class="sy1">&lt;</span><span class="kw1">class</span> T<span class="sy1">&gt;</span>
<span class="kw4">constexpr</span> <span class="kw4">int</span> popcount<span class="br0">(</span>T x<span class="br0">)</span> <span class="kw1">noexcept</span><span class="sy4">;</span>
<span class="co1">// &#31471;&#24207;</span>
<span class="kw2">enum</span> <span class="kw1">class</span> endian <span class="br0">{</span>
little <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#25551;&#36848; */</span>,
big <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#25551;&#36848; */</span>,
native <span class="sy1">=</span> <span class="coMULTI">/* &#35265;&#25551;&#36848; */</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>