| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1691 人关注过本帖
标题:一道C++运算题,求解释
只看楼主 加入收藏
ondy
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-9-4
收藏
得分:0 
  int a=3,b=6;
  int c=a^b<<2; // b<<2=3; 然后a的3次,你说等于几??
注意风格,如果不知道优先,可以用括号啊!!!强烈推荐用括号

2007-09-11 20:15
DG中专生
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-9-11
收藏
得分:0 
int c=a^b<<2;
这句什么意思?
能解释下吗?我初学不太懂
2007-09-11 22:25
snakeImao
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-9-10
收藏
得分:0 
#include <iostream.h>
void main()
{
int a=3,b=6,c;
c=a+(b<<2);
cout<<c<<endl;
}
结果一样也是 27 。
2007-09-11 22:41
guobingyu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-12
收藏
得分:0 
sunkaidong 你太牛了
I 服了 You
2007-09-12 18:22
boris250
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-9-11
收藏
得分:0 
我也是初学者,“&lt;&lt;”表示什么意思呀,看各位大师的贴应该是个运算符!可是不知道具体他是怎么运算的。
2007-09-12 20:21
wangweicoin
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2007-7-16
收藏
得分:0 
回15楼:
"<<"是移位运算符,就是二进制的表示下,逻辑向左移位。b<<2表示向左移两位,而">>"表示向右移。

~我的人生不是套公式~
2007-09-12 23:04
wangweicoin
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2007-7-16
收藏
得分:0 

回8楼:
最初的C++库是在全局名字空间中定义的,而标准C++把整个库定义在自己的名字空间中,那个空间的名称为std,#include<iosteam.h>(老式的头文件)把文件的内容放入全局名字空间,include<iosteam>(新式的头文件)则是把文件内容放入std中,所以需要调用using namespace std语句。像楼主用的#include<iosteam.h>
不用加上using namespace std;


~我的人生不是套公式~
2007-09-12 23:15
何苦而乐
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-9-12
收藏
得分:0 

拷下来编译后提示如下错误是怎么回事啊?
--------------------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)


2007-09-13 00:09
boris250
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-9-11
收藏
得分:0 
回复:(wangweicoin)回15楼:

首先感谢16楼的回答,可是还是有点不懂,你所说的逻辑移位是不是指相应的数字向前或向后移动几位呀,比如6的二进字数为00000110,6<<2表示00000110中每个数字相应向左移两位是00011000,6>>3表示00000110各数向右移三位则为:00000000.
还有点不懂的是“^”表示什么意思,前面有提到是异或运算,到底是如何计算。
多谢,我也是刚开始学C++,所以问题特多,谢谢!!!

[此贴子已经被作者于2007-9-13 20:43:36编辑过]

2007-09-13 20:36
wangweicoin
Rank: 1
等 级:新手上路
威 望:1
帖 子:58
专家分:0
注 册:2007-7-16
收藏
得分:0 

你对移位理解的对,至于异或你可能没学过汇编吧,打个比方吧:3^6=5
3= 0000 0011
6= 0000 0110
------------------
5= 0000 0101
就是说,把两个数的二进制对位进行比较,相同就是0,不同就是1,就是这么简单!


~我的人生不是套公式~
2007-09-14 19:13
快速回复:一道C++运算题,求解释
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033114 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved