のように少し印刷する方法を教えてくださいprintf("%d",bit);
。
andrey
質問する
17595 次
6 に答える
20
bit が必要な値を最下位ビットに含む単なる int である場合、次のようになります。
printf("%d", bit & 0x1);
するべきです。& は、最初の有効ビットのみが設定された数値でバイナリ AND を実行しているため、整数の残りのビットをすべて削除しています。
于 2008-12-08T15:55:37.513 に答える
10
Herms よりも一般化する必要がある場合は、次のようにすることができます。
#define IsBitSet(val, bit) ((val) & (1 << (bit)))
/* ... your code ... */
printf ("%c", IsBitSet(bit, 0) ? '1' : '0');
printf は Herms の回答と同等です。
C のビットフィールドについて話している場合は、次のようにすることができます。
struct foo { int b:1; } myFoo;
printf("%c", myFoo.b ? '1' : '0');
于 2008-12-08T16:01:48.890 に答える
6
関連する質問:1 つのビットをどのように設定、クリア、トグルしますか? c および c++ でのシングル ビット アクセスの詳細な説明です。
于 2008-12-08T16:17:42.150 に答える
3
n の m 番目のビット (1..16 または 32 の m) を出力するには:
void print_bit(n, m)
{
printf("%d", n & (1 << (m - 1)));
}
- 1
ビット カウンターが 0 から始まる場合は、ビットを削除します。
于 2008-12-08T16:00:29.033 に答える
1
C++ の回答は、C89 の回答よりも簡単で、ネイティブの bool 型を使用します。
bool b = true;
std::cout << b;
C99 は非常に似ています。
_Bool b = 1;
printf("%d", b);
于 2008-12-09T10:10:16.790 に答える
1
「ユニオン」を使用できます:
union bitshow {
unsigned bit1:1;
int i;
};
int main() {
union bitshow bit;
cin >> bit.i;
cout << bit.bit1;
return 0;
}
于 2011-07-11T11:38:11.783 に答える