int c=a^b<<2; // b<<2=3; 然后a的3次,你说等于几??
注意风格,如果不知道优先,可以用括号啊!!!强烈推荐用括号

回8楼:
最初的C++库是在全局名字空间中定义的,而标准C++把整个库定义在自己的名字空间中,那个空间的名称为std,#include<iosteam.h>(老式的头文件)把文件的内容放入全局名字空间,include<iosteam>(新式的头文件)则是把文件内容放入std中,所以需要调用using namespace std语句。像楼主用的#include<iosteam.h>
不用加上using namespace std;
拷下来编译后提示如下错误是怎么回事啊?
--------------------Configuration: guaiquti - Win32 Debug--------------------
Compiling...
guaiquti.cpp
E:\c++程序设计\guaiquti.cpp(2) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(2) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(3) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(3) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(4) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(4) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(4) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(4) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(5) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(5) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(5) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(5) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(6) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(6) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(6) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(6) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(7) : error C2018: unknown character '0xa1'
E:\c++程序设计\guaiquti.cpp(7) : error C2018: unknown character '0xa1'
执行 cl.exe 时出错.
guaiquti.obj - 1 error(s), 0 warning(s)
首先感谢16楼的回答,可是还是有点不懂,你所说的逻辑移位是不是指相应的数字向前或向后移动几位呀,比如6的二进字数为00000110,6<<2表示00000110中每个数字相应向左移两位是00011000,6>>3表示00000110各数向右移三位则为:00000000.
还有点不懂的是“^”表示什么意思,前面有提到是异或运算,到底是如何计算。
多谢,我也是刚开始学C++,所以问题特多,谢谢!!!
[此贴子已经被作者于2007-9-13 20:43:36编辑过]
你对移位理解的对,至于异或你可能没学过汇编吧,打个比方吧:3^6=5
3= 0000 0011
6= 0000 0110
------------------
5= 0000 0101
就是说,把两个数的二进制对位进行比较,相同就是0,不同就是1,就是这么简单!