32位\16位程序是什么概念啊!!??
刚学C不久,用C写的一些很简单的程序运行之前系统老提示"…………16位程序…………"记不清楚具体是什么了!这16位和32位到底是咋回事!!两者存在什么差别,或者说是什么因素导致的这样的差别!!?
哪位高人能帮帮忙!!在网上查了好久也没看出个所以然来!!只能在这里求救了,相信很多初学者都有这个疑问!!
搜索更多相关的解决方案:
概念
----------------解决方案--------------------------------------------------------
这个问题与CPU的寄存器有关。
在16位的CPU模式下,你的程序只能访问到2的16次方大小的内存单元。同理,32位则能访问到2的32次方内存单元,区别就在这里。
----------------解决方案--------------------------------------------------------
还是不太明白啊!!能解释的透彻点吗!!!还有就是C程序怎么编译成32位的!
----------------解决方案--------------------------------------------------------
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程序出来。
----------------解决方案--------------------------------------------------------
LS好厉害, 学到了不少东西,以前我也对这个不是很明白.
我下载LINUX的时候经常看到什么i386的,还有x86的, LS的可不可以解释一下. 谢谢了.
----------------解决方案--------------------------------------------------------
楼上的理解有误:
一般讲的CPU是用来体现运算能力的,一次并行处理的数据吞吐量,和寻址(地址总线)
能力无关
程序提示你的是指令集的位数,即操作系统的位数,这才是寻址能力的体现
例如:32位系统下,进程的寻址能力可达4G空间
----------------解决方案--------------------------------------------------------
好像16位的CPU的寻址能力是1MB吧,寻址能力不是跟地址总线有关吗?
地址总线宽度为N的话,那么它的寻址能力应该是2的N次方
CPU一次处理数据的能力和数据总线的宽度有关
----------------解决方案--------------------------------------------------------
开始有点明白了,呵呵!!!谢谢各位老师!!!
----------------解决方案--------------------------------------------------------