C++问题,请各位高手赐教

int a=4,b=3;
a=a^b;b=b^a;a=a^b;过后a b的值是多少?a=a^b是什么意思,有什么作用,谢谢各位了

第1个回答  2009-01-20
同意 希声和寡 的答,简单精辟

补充一句,这是最有效的交换两数的值的代码。
第2个回答  2009-01-11
交换a和b的值
第3个回答  2009-01-11
a=a^b;b=b^a;a=a^b;过后a=3,b=4

^是按位异或运算符.

如果两个输入位之一是1而不是同时为1,则位的异或运算符xor(^)的结果位为1.

运算过程:

int a = 4 ,b = 3;
机器中转化为二进制
a = (二进制)0100, b = (二进制)0011

a=a^b=0100^0011=0111=7(十进制)
b=b^a=0011^0111=0100=4(十进制)
a=a^b=0111^0100=0011=3(十进制)

即对照位数,数字相同即为0,数字不同则为1
还有就是二进制与十进制数的换算

所以最终a=3,b=4 o(∩_∩)o本回答被网友采纳
第4个回答  2009-01-11
a=a^b;b=b^a;a=a^b;过后a=3,b=4

^是按位异或运算符。

运算过程如下:
int a=4,b=3;
为了方便计算,转换为二进制:
a=(二进制)0100,b=(二进制)0011

a=a^b=0100^0011=0111=7(十进制)
b=b^a=0011^0111=0100=4(十进制)
a=a^b=0111^0100=0011=3(十进制)
所以最终a=3,b=4

VC++编译出错,错误代码:error C1189,请各位高手指点一下。
1.工程-》属性-》C\/C++-》代码生成-》运行时库:修改成: 多线程调试(\/MTd); (release版本也修改成 多线程(\/MT)2.工程-》属性-》常规-》MFC的使用:修改为:在静态库中使用 MFC 方法2不一定管用,PC机上的MFC(相对于EVC而言)程序都是多线程的(不信你照2修改试试,会出现找不到_b...

我是个女孩,正在学习c++,感觉非常吃力,求助各位高手,传授经验,到底应该...
首先,你要想好为什么要学好C++?如果解决不好这个问题,你的C++不太可能学好,我学C++是为了今后能从事开发游戏的工作。只有有了明确的目标,你才会有动力。其次,学习时最好能保持自己不骄不躁,因为刚开始时,你会觉得C++很枯燥,再加上你自己说你学得很吃力,所以很容易放弃。这时静下心来,想想你...

现有一道 C++编程题,请各位高手能够鼎力相助。速求……急!
回答:长见识了啊...感谢楼主!

请各位C++高手帮我看一下这道简单的C++选择题.
c错了,析构函数 不能带任何参数。析构函数与 构造函数 相反,当对象脱离其 作用域 时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后”的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

c++编程中遇到的问题,请各位电脑高手帮忙解决
1. 打开一个命令行窗口: 开始->运行, 输入"cmd", 回车 2. 在命令行窗口中输入: msdev \/useenv 回车就好了 ps. msdev就是msdev.exe,就是VC IDE程序, 所以你输入msdev.exe \/useenv也可以.就是表示启动这个程序,并加了一个命令行选项.具体程序在这里:C:\\Program Files\\Microsoft Visual Studio\\...

C++ delete问题,望高手帮忙解决
各位,0就是NULL.详见C++ primer 这程序问题在于int len=strlen(array);len是计算的字符串的长度,不包含'\\0'而后面movedArray[len]='\\0';已经越界了.所以这里 char *movedArray=new char[len];改成 char *movedArray=new char[len+1];=== include<iostream> include<string> using namespace ...

...不用回车就能直接返回结果 这样要怎么做到 请各位高手 帮帮我...
1. 输入数的位数确定:(比如一定是一位数,或一定是两位数)使用char ch; scanf("%c", &ch); 或 cin>>ch; 逐位获得输入,然后自己转换为整数类型。(具体转换方法请上网查找)2. 输入数的位数不确定:(比如有可能是两位数 有可能是三位数)没有办法做到,必须有一个结束的标志(即使不用...

C++问题,请各位高手赐教
同意 希声和寡 的答,简单精辟 补充一句,这是最有效的交换两数的值的代码。

请教高手: C++错误 LIBCD.lib(wincrt0.obj) 1 unresolved externals...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 表明你是在windows32环境下进行的编程,入口函数是winmain,而非main(main是控制台程序的),当然出错了,请确认你的编程环境和编程种类对应。你可以用同样方法测试下winmain函数。注意把那些垃圾临时文件删除掉,必要时...

...输入数据边对数据进行插入排序的程序,求各位高手解答!
以下是一个C++程序,可以边输入数据边对数据进行插入排序:include <iostream>using namespace std;int main() { const int MAX_SIZE = 100; int arr[MAX_SIZE]; int n = 0; \/\/ 输入数据,以-1作为输入结束标志 while (n < MAX_SIZE) { int num;cin >> num; if (...

相似回答
大家正在搜