🔧 C23 ・ stdbit.h ・ C23
stdc_has_single_bit の使い方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 と一緒に使う関数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トラックと、段位検定・模試のフルセットは完全版に収録しています。