如何查看计算机字长?
如何查看计算机字长?
unsigned的长度就是我的计算机的字长吗??
我用这段代码测试,可结果是16,难道我的奔腾4是16位的?
unsignerd a;
int i;
a=~0;
i=1;
while((a>>=1)!=0)
++i;
printf("%d\n",i);
问题点数:100、回复次数:8Top
1 楼leyt(思维机器)回复于 2003-11-02 17:21:19 得分 10
#include<iostream>
using namespace std;
int main()
{
unsigned int i;
cout<<sizeof(i)*8;
}Top
2 楼yizhili(梨子)回复于 2003-11-02 17:25:10 得分 10
这个和编译器有关的。
如果编译器不支持32位字长,就只有16位了。Top
3 楼iq199(iq199)回复于 2003-11-02 17:44:33 得分 10
unsignerd a;
int i;
a=~0;
i=1;
while((a>>=1)!=0)
++i;
printf("%d\n",i);
------------------------------------
我测试了,这段代码没有错误
结果 是32
我用的是vc.net 2003Top
4 楼buaaaladdin(阿拉丁的灯)回复于 2003-11-02 18:09:53 得分 0
同意楼上的算法Top
5 楼yongming520(谭永明)回复于 2003-11-02 20:27:15 得分 0
up!Top
6 楼xhj10(欧阳无忌)回复于 2003-11-02 20:38:19 得分 0
upTop
7 楼plainsong(短歌)()回复于 2003-11-02 20:46:59 得分 60
你的奔腾工作在16位模式时就等同于16位机,相当于高速的8086(实模式或虚拟模式)或是80286(16位保护模式)。你得到16应该是用的实模式编译器的结果。
知道你的机器的硬件字长是没有意义的,因为我们编写的程序其实是运行在一个“虚拟机”上,这个“虚拟机”的字长才是有意义的。而这个虚拟机主要由操作系统和编译器组成。
Top
8 楼zhuixe(竹子)回复于 2003-11-02 21:32:04 得分 10
楼上说的很清楚了,在TC2.0下认为是16位,TC3.0或VC++就会认为32位了Top




