我明白
11001110
& 10011000
= 10001000
但我想自己测试一下
所以我声明 unsigned char 并将其打印出来,但它只是让我空白。
unsigned char result;
result= 11001110 & 10011000;
cout<<result;
也用 unsigned int 测试过,但它给了我 0,这不是我所期望的
我明白
11001110
& 10011000
= 10001000
但我想自己测试一下
所以我声明 unsigned char 并将其打印出来,但它只是让我空白。
unsigned char result;
result= 11001110 & 10011000;
cout<<result;
也用 unsigned int 测试过,但它给了我 0,这不是我所期望的
11001110
并且10011000
不是二进制数(至少在编译器的脑海中)。
二进制11001110
is206
和10011000
is 152
,所以你实际上想要(我认为):
result = 206 & 152;
或使用 astd::bitset
然后将结果打印为二进制文件。
您可能要考虑hex
用于测试
int a = 0xCE; // 11001110
int b = 0x98; // 10011000
int result = a & b;
cout << hex << result << endl;
或编写一个函数来转换result
为二进制。
在 c++ 中,您必须使用十六进制来表示位数。因为 11001110 是 0XCE 而 10011000 是 0X98
unsigned char b1 = 0XCE;
unsigned char b2 = 0X98;
unsigned char b = b1 & B2;
二进制中的 11001110 与十进制中的数字不同。
由于 c++ 没有二进制说明符(但有十六进制和八进制),因此您需要使用在线转换器之类的东西。
找一个在线的二进制转十进制转换器,将11001110转为十进制,10011000转为十进制,进行&
运算,然后将结果从十进制转回二进制。
如果你写11001110
,你会得到一个十进制数,而不是一个二进制数,就像 Luchian 指出的那样。
要获得二进制文件,您必须编写0b11001110
... 前缀0b
表示在 gcc、clang 和 tcc 中,您使用的是二进制系统。
我不知道,Visual C++ 编译器会用这个前缀做什么。