依睛(IT blog) 我回来了,PHP<-->C/C++ LINUX

笨鸟

导航

<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

留言簿(26)

随笔分类(315)

文章分类(5)

收藏夹

随笔档案(330)

文章档案(11)

相册

阅读排行榜

评论排行榜

统计

积分与排名

友情连接

最新评论

精讲 什么叫32位机和64位机

啊....自己学了这么长时间都不太懂计算机....啊...可悲,  脑子太笨了, 上辈子自己脑子过于聪明了吧, 所以这辈子脑子要笨了.  多看看下例子.  慢慢讲. 
碰到的问题是在接收文件, 文件过大所以发现的问题.

现在32机器  int 
#include   <stdio.h>  
   
  void   main()  
  {  
      int   a=   945930348;  
      printf("%d\n",a);  
  }  
  显示的结果是945930348,它已经超出了-32768---32767这个范围了?

这是和编译环境有关的,如果16位就是-32768---32767,
如果32位就是-2,147,483,648   to   2,147,483,647

明白了。  
  但什么是16位的?
Top

3 楼rightyeah(众妙之门)回复于 2001-10-15 11:11:12 得分 0

其实就是一个字长的问题,新的cpu多用32位的寄存器,甚至64位寄存器,相应的OS也越来越多地支持32位甚至64位字长的处理。比如windows系统,现在的win95/98/nt/2k都是32位系统,那么它默认的存储单位就是32位(也就是4个字节),那么一个int变量也顺理成章地变成32位,取值范围是-2^31   to   2^31   -1Top

4 楼fishskin(鱼皮)回复于 2001-10-15 11:14:17 得分 0

在VC中,int型变量是4个字节的,所以保留一个符号位,它的范围是正负2的31次方,你看到的int范围是-32768---32767是因为在C中,int变量占2个字节,保留符号位,范围是正负2的15次方,即-32768---32767,仔细想一想就明白了。Top

5 楼asm386(草原上的狼)回复于 2001-10-15 11:56:20 得分 0

请使用   windows   提供的   BYTE,WORD,DWORD...   等。  
  不要使用   c   提供的与平台无关的   int,   long   ...。  
  因为   c   提供的   int   在   16   位机器上是   16位,在   32   位机器上是   32位,在   64   位机器上是   64位。  
  你应该了解一下语言与操作系统提供的开发平台的关系。  
  语言懂得再深,也便写不出相关平台的优秀软件。如:windows   程序或   unix   程序。


什么叫32位机和64位机

悬赏分:0 - 解决时间:2007-11-21 16:24
如题
最佳答案
如果买品牌机,商家就在外观上明确标出是64位的,可以在笔记本或者机箱外面明显得找到64位的标志,这个是商品的卖点。
硬件生产商对明确表明其品牌的芯片的商品的广告费会做很大一部分补偿,所以,你在商品外观上很容易找到关于CPU的品牌和芯片的类型。比如迅驰,AMD64,奔腾D,Piii,CY3等等。
如果你是自己去买配件,在CPU的盒子上也会写的很清楚的。
如果你还不是很清楚,可以下载一个测试cpu的软件来测试一下。

CPU的位和字长

位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。

字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位的CPU。同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。





市面上所说的64位处理器包括AMD Athlon 64与INTEL的EMT64处理器都是指通用寄存器的位宽,不是总线。
但要从数据总线方面来说,从80386开始就已经是32bit
而奔腾级别以上的CPU数据数据总线都是64bit了,包括安腾在内的64位服务器处理器。
而我们通常所说的32bit向64bit过度都是习惯上以通用寄存器的位宽来区分的。
还有一种更具体的说法是:
这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。

64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。

8位处理器、16位处理器、32位处理器和64位处理器,其计数都是8的倍数。它表示一个时钟周期里,处理器处理的二进制代码数。“0”和“1”就是二进制代码,线路上有电信号,则计做1,没有电信号则为0。8位机有8条线路,每个时钟周期有8个电信号,组成一个字节。所以,随8位处理器上升至64位处理器,每个时钟周期传送1个字节到8个字节,关联到时钟速度提高到若干个千兆赫之后,处理器处理信息的能力越来越大。


在买电脑时候,这个指标是明确的标在商品外观上面的,切忌不可以随意听信商家的言语,如果真的要攒机,建议找个懂行情的朋友和你一起去。

posted on 2008-12-11 09:55 向左向右走 阅读(1680) 评论(0)  编辑 收藏 引用 所属分类: C/C++学习资料库

只有注册用户登录后才能发表评论。