| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1226 人关注过本帖
标题:How to compile to 64-bit program?
只看楼主 加入收藏
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
 问题点数:0 回复次数:8 
How to compile to 64-bit program?

Hi guys, I want to ask

Is it possible to compile the following source code to a 64-bit program on a 32-bit system?

I have MS VS2005 + Dev-C++ 4.9.9.2 installed on my 32-bit windows xp professional.


#include <iostream>
using namespace std;

int main()
{
long long i=1000000000000; // this number overflows 32-bit integer
cout<<i<<endl;
return 0;
}


搜索更多相关主题的帖子: program compile How windows long 
2007-07-20 15:53
stupid_boy
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-6
收藏
得分:0 

你试一试不就知道了?


失眠。。。
2007-07-20 16:05
一番宝瓶
Rank: 1
等 级:新手上路
帖 子:239
专家分:0
注 册:2007-7-14
收藏
得分:0 

Maybe we express it in 32-bit OS by using array to deal with big integer.
I got a question like this before as well.

" what's the result(c) in a 32-bit OS? "



#include<iostream>
using namespace std;

int main()
{
long x = 987654321, c = 0, d = 1, e = 6;
while(x--){
c += d,
d += e,
e += 6;
}

cout<<c<<endl; //in an 128-bit OS,the code could be run

return 0;
}


2.3.2.2.2.0
2007-07-20 20:13
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

你用VS2005(安装64位支持),然后在编译时使用64位方式。

我没试过,have a go


女侠,约吗?
2007-07-21 00:27
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 

用G++编译器,可以使用long long 类型和cout<<i<<endl;进行输出,用printf("%lld\n",i);可以通过编译但输出结果不正确。
在VC++6.0上,我不能使用long long进行声明,可以使用__int64但不能使用cout<<i<<endl;编译错(提示<<运算有不明确,估计没有对__int类型重载过<<运算)非常奇怪。同样,用printf("%lld\n",i);可以通过编译但输出结果不正确。

我是32位机 OS:WINXP SP2

2007-07-21 01:20
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

用long long有用么?
64位是系统的地址总线宽度..哪是这么来的啊..
要这样能行, 我原来学虚拟机的时候用的基础变量位宽都是128bits, 导师还说"为128位计算机做好准备"...
(^^!)

请指教..


女侠,约吗?
2007-07-21 09:06
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
回复:(野比)用long long有用么?64位是系统的地址总...
子不闻实践是检验真理的唯一标准乎?你可以在32位机上试试就知道了
2007-07-21 22:31
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 

我发觉在G++和VC++6.0上都可以使用printf("%I64d\n",i);对64位整型进行输出

#include <iostream>

using namespace std;

int main()
{
long long i=1234567890123ll;//初始化的时候G++对于超过long表示范围的数需要加后缀ll,而VC++6.0上不需要,确切の说是不能加
printf("%I64d\n",i);
}

2007-07-29 17:17
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 

确实没试过..原来VM都是拿汇编学的..
有时间试试..


女侠,约吗?
2007-07-29 23:07
快速回复:How to compile to 64-bit program?
数据加载中...
 
   



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

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