C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス stdc_has_single_bit

🔧 C23 ・ stdbit.h ・ C23

stdc_has_single_bit の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

bool stdc_has_single_bit(x);

どんな関数か

符号無し整数の値がちょうど1ビットだけ立っている(2の累乗である)かどうかを判定するC23の型総称関数。値が2の累乗かどうかを高速にチェックしたい時に使う。 かつては(x & (x-1)) == 0のようなビット演算のイディオムで書かれていた判定を名前付きの関数で表現できる。

使用例

#include <stdbit.h>
#include <stdio.h>
int main(void) {
    printf("%d\n", stdc_has_single_bit(16u));
    return 0;
}

つまずきやすい注意点

⚠️ 0は2の累乗ではないためfalseになる。境界値の扱いに注意。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

stdc_has_single_bit と一緒に使う関数

stdc_count_ones符号無し整数のビット表現で1になっているビットの個数(ポピュレーションカウント)を数えるC23の型総称関数。ハミング距離… stdc_bit_ceil指定値以上で最小の2の累乗を返すC23の型総称関数。ハッシュテーブルやバッファのサイズを2の累乗に切り上げたい時に使われ…

同じ分類(C23)の関数

ckd_add ckd_mul ckd_sub free_aligned_sized free_sized stdc_bit_ceil stdc_bit_floor stdc_bit_width stdc_count_ones stdc_count_zeros stdc_leading_zeros stdc_trailing_zeros strndup

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る