重複の可能性:
CまたはC ++でバイナリリテラルを使用できますか?
Cでビット演算子の結果を表示できません。以下のコードでは、a&bは100001およびa | b 111111である必要があります。ただし、印刷される結果は異なります。itoaを使用して、または使用せずにこれを実行しようとしましたが、役に立ちませんでした。プログラムが回答を正しく出力しないのはなぜですか?
#include<stdio.h>
#include<stdlib.h>
int main (int argc, char* argv[]) {
unsigned a = 101101;
unsigned b = 110011;
unsigned c = a&b;
unsigned d = a|b;
char s[100];
char t[100];
itoa(c,s,2);
itoa(d,t,2);
printf("%s\n",s); /* Shouldn't it produce 100001?
Instead I get 11000100010101001*/
printf("%s\n",t); /* Ought to print 111111.
Instead it prints 11010111111111111 */
return 0;
}
ありがとうございました