计划:
typedef bitset<8> bits;
char original = 0xF0F0F0F0;
char Mask = 0xFFFF0000;
char newBits = 0x0000AAAA;
/*& operation with "0bit set 0" & "1bit give no change to original byte" */
cout<<"Original o: "<<bits(original)<<endl;
cout<<"NewBits: "<<bits(newBits)<<endl;
cout<<"Mask m: "<<bits(Mask)<<endl;
cout<<"o & m with Mask: "<<bits(original & Mask)<<endl;/*0 set original bit as 0 */
Run Code Online (Sandbox Code Playgroud)
结果:
原始o:11110000
NewBits:10101010
面具m:00000000
o&m with Mask:00000000
结果10101010
我理解十六进制及其结果..但....... o & m== 0000 0000所以bits(o & m | newBits)结果应该是0000 0000,而不是1010 1010......
我错过了这个概念......
任何人都可以帮助我...
期待良好的回应
谢谢
o & m = 0000 0000和newBits = 1010 1010.所以,如果你或他们(位),你将得到的结果1010 1010作为0|0=0, 0|1=1, 1|0=1, 1|1=1.
0000 0000 OR WITH
1010 1010
-----------------
1010 1010
-----------------
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |