CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

字长

楼主cyberleon(小邦)2002-03-22 19:24:27 在 C/C++ / C语言 提问

我们目前的PC字长都是32位的吧?  
   
  那么各种基本数据类型的取值范围是多少呢? 问题点数:40、回复次数:11Top

1 楼xboy(无薇不至)回复于 2002-03-22 20:27:22 得分 5

也有号称64位的机器哦。  
          ~~~~~~      
  所谓32位是指从cpu出来的地址线是是32根!  
  地址线越多,他的寻址空间越大,也就支持更大内存哦!  
  如果你想深入研究那你看看计算机组成原理之类的书哦!    
     
     
  Top

2 楼wishbetter(木木木)回复于 2002-03-22 20:35:06 得分 0

你有听说不同字长的机器的“int”范围不同吗?  
  我没有听过,所以我认为都一样的,不会随着机器的不同而不一样(我的意见)  
   
  如果真的有变化,我很想知道:)Top

3 楼xboy(无薇不至)回复于 2002-03-22 20:38:28 得分 5

还有一点,数据的取值范围可以通过软件来改变!!!Top

4 楼chenggl(小石)回复于 2002-03-22 20:52:21 得分 5

好像与编译器有关Top

5 楼efanl(传说中的一凡……)回复于 2002-03-22 21:12:11 得分 5

short   int是16位的,long   int是32位的,char是8位的  
  VC下int默认是long   int  
  TC下int默认是shortTop

6 楼Wind_LQ(风)回复于 2002-03-22 21:42:03 得分 5

的确是与编译器有关的。  
  如果是32位编译器,则int是32位的,long和int是等价,short则是int的一半也就是16位  
   
  如果是16位编译器,则int是16位的,short就只有8位。  
   
  这个你可以用VC和TC试一下Top

7 楼jishiping(JSP 季世平)回复于 2002-03-22 22:21:13 得分 5

现在的C++编译器支持   64-bit   整数,数据类型为   __int64Top

8 楼Solstice(大佛)回复于 2002-03-23 09:47:00 得分 10

 
  机器的“字长”和地址线无关,和数据线紧密相关。  
   
  386到pentium   4的字长都是32位,都是“32位机”  
  而从pentium   2开始,地址线变成了36根,可以直接寻址64GB的空间。  
  其他非IA   -   32架构的机器我没有了解,猜想在intel   的64   bits处理器itantium上,int   ==   64   bits。  
   
   
  C++标准规定short   int   <=   int   <=   long   int,而并没有规定具体的位数。  
  由于80x86的向下兼容性,386以上的机器既可以执行32   bits的程序,也可以执行16   bits的程序。  
   
  据我的经验,在PC机的16位编译器下,如TC++   3.0  
  short   int   ==   int   ==   16   bits,   long   int   ==   32   bits  
  在32位编译器下,如VC++   6.0  
  short   int   =   16   bits  
  int   =   long   int   =   32   bits  
   
  所谓“现在的C++编译器支持   64-bit   整数,数据类型为   __int64”也只对一两种编译器成立(VC)。在有的编译器(如g++)   下,64   bits整数是long   long   intTop

9 楼cyberleon(小邦)回复于 2002-03-23 11:25:09 得分 0

越来越糊涂!!!  
   
  有这方面原理的书吗?Top

10 楼nicholas_87(nicholas)回复于 2002-03-23 12:09:55 得分 0

好高深啊!!Top

11 楼mike_hao_1980(琦琦)回复于 2002-03-23 18:16:54 得分 0

solstice(大佛)说得没有错,  
  字长是指记算机的数据总线的长度,  
  我们目前的PC字长都是32位的  
  计算机的int型数据一般都与字长相同,  
  而软件有时可以模拟一些不同字长的数据的运算  
  这就是为什么windows可以运行以前的16位dos程序,  
  而java无论在什机器上int都是64位的,也是模拟出来的。  
  一般说来,  
  char型数据一般都是8位(采用ACSII格式),但在WIN2000等机器上,  
  由于采用的是(UNICODE)字符集,它是16位的。  
  float型数据一般是4个字长,double型数据8个字长;  
  当然,只是一般情况。Top

相关问题

  • 字长的问题
  • 数据库中变字长的问题?
  • 如何确定计算机的字长?
  • 对汉字长度的判断问题?
  • CSS可以控制文字长度么?
  • 关于扩充pc字长的问题
  • 如何限制DISTLIST文字长度?????
  • 关于c语言字长范围
  • 强烈要求蝈蝈修改中文呢称的字长!
  • win32和win16中的32和16是指CPU的字长吗?

关键词

  • c++
  • 编译器
  • 数据
  • 字长
  • 机器
  • 地址线
  • short
  • 范围
  • 不同
  • bits

得分解答快速导航

  • 帖主:cyberleon
  • xboy
  • xboy
  • chenggl
  • efanl
  • Wind_LQ
  • jishiping
  • Solstice

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo