| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3024 人关注过本帖
标题:32位\16位程序是什么概念啊!!??
只看楼主 加入收藏
dsjdcy
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-2
收藏
 问题点数:0 回复次数:7 
32位\16位程序是什么概念啊!!??
刚学C不久,用C写的一些很简单的程序运行之前系统老提示"…………16位程序…………"记不清楚具体是什么了!
   这16位和32位到底是咋回事!!两者存在什么差别,或者说是什么因素导致的这样的差别!!?

       哪位高人能帮帮忙!!在网上查了好久也没看出个所以然来!!只能在这里求救了,相信很多初学者都有这个疑问!!
搜索更多相关主题的帖子: 概念 
2007-12-07 09:35
vlinux
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-29
收藏
得分:0 
这个问题与CPU的寄存器有关。

在16位的CPU模式下,你的程序只能访问到2的16次方大小的内存单元。同理,32位则能访问到2的32次方内存单元,区别就在这里。
2007-12-07 09:44
dsjdcy
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-2
收藏
得分:0 
还是不太明白啊!!能解释的透彻点吗!!!还有就是C程序怎么编译成32位的!
2007-12-07 10:03
vlinux
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-29
收藏
得分:0 
16或32、64位指的是CPU的寄存器位数,CPU一次能处理多少数据的能力。

那么16位的CPU只能对2的16次方=65536位内存,即64K的内存地址进行直接寻址。

而32位CPU则具备2的32次方=4294967296位内存,即4G的内存进行直接寻址。

C程序要编成32位的首先你的CPU必须得是32位以上,然后你的编译器必须得支持32位。现在主流的计算机都是32位以上,这点相信你没问题,你只要选择VC、GCC之间任一款C语言编译器即可写出32位的C程序出来。
2007-12-07 10:38
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
得分:0 
LS好厉害, 学到了不少东西,以前我也对这个不是很明白.

我下载LINUX的时候经常看到什么i386的,还有x86的, LS的可不可以解释一下. 谢谢了.
2007-12-07 12:05
jsjl2008
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-6
收藏
得分:0 
楼上的理解有误:

一般讲的CPU是用来体现运算能力的,一次并行处理的数据吞吐量,和寻址(地址总线)
能力无关

程序提示你的是指令集的位数,即操作系统的位数,这才是寻址能力的体现

例如:32位系统下,进程的寻址能力可达4G空间
2007-12-07 13:12
接过雷锋的枪
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-11-11
收藏
得分:0 
好像16位的CPU的寻址能力是1MB吧,寻址能力不是跟地址总线有关吗?
地址总线宽度为N的话,那么它的寻址能力应该是2的N次方
CPU一次处理数据的能力和数据总线的宽度有关
2007-12-07 17:42
dsjdcy
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-2
收藏
得分:0 
开始有点明白了,呵呵!!!谢谢各位老师!!!

有兴趣共同学习的加QQ287624635 !或E-main至dsjdcy@
2007-12-08 09:55
快速回复:32位\16位程序是什么概念啊!!??
数据加载中...
 
   



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

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