03.07 為什麼好多軟件都區分32位和64位,到底有什麼區別?

魚兒遊啊遊2019


軟件都是為了適配系統才分這倆版本的,因為系統有32位和64位的區別,一般配置較低的電腦內存不超過4G都會安裝32位系統,如果是超過4G就得安裝64位系統了,因為32位系統最大隻是吧4G內存,也就是說如果你電腦是高於4G內存安裝的卻是32位系統,那電腦也只是吧最多4G內存,你電腦的性能就不能完全發揮出來,所以正因為系統有這兩種分別所以軟件廠商就必須設計這兩種位別的系統來設計軟件,才能保證他們的軟件能夠通用所有電腦。


倪少


您的計算機可能正在運行64位版本的Windows。但是看看任務管理器,您會看到系統上的許多應用程序仍是32位的。這有問題嗎?

1.為什麼好多軟件都區分32位和64位?

大多數現代計算機(肯定是Windows 7左右以後開始銷售的計算機)都具有64位功能,並附帶64位版本的Windows。如果您不確定自己的PC,可以很容易地檢查您運行的是32位還是64位Windows。Windows的64位版本和32位版本之間有很多區別,如果您的PC和應用程序支持Windows,則您應該運行64位版本。即使您運行的每個應用程序都是32位應用程序,運行64位OS仍將更加安全可靠。

但是事情實際也並不是那麼簡單。首先要知道的是Windows的64位版本可以運行32位應用程序,但是Windows的32位版本不能運行64位軟件。另一個小問題(僅適用於極少數人)是32位版本的Windows可以運行舊的16位應用程序,但那些16位應用程序不能在64位版本的Windows上運行。因此,讓我們進一步研究它,看看什麼時候對您來說很重要。

2.如何檢查您的哪些應用程序仍為32位

您可以使用任務管理器查看哪些程序是64位的,哪些程序是32位的。要打開它,請右鍵單擊任務欄上的任何打開區域,然後單擊“任務管理器”(或按Ctrl + Shift + Escape)。

在“進程”選項卡上的“名稱”列下查看。如果您使用的是Windows 8或10的64位版本,則在任何32位應用程序的名稱之後都會看到“(32位)”文本。如果您使用的是Windows 7的64位版本,則會看到文本“ * 32”。在所有版本中,64位應用程序的名稱後都沒有多餘的文本。

Windows還會在不同的地方(或至少嘗試這樣做)安裝32位和64位應用程序。32位應用程序通常安裝在Windows 64位版本上的文件夾中,而64位程序通常安裝在該文件夾中。

但是,這更多是一個準則。沒有強制將32位和64位應用程序放入其各自文件夾的規則。例如,Steam客戶端是32位程序, 默認情況下會正確安裝到該文件夾中。但是,默認情況下,通過Steam安裝的所有遊戲都會安裝到該文件夾中,即使是64位遊戲也是如此。

如果比較兩個不同的Program Files文件夾,則會發現大多數程序可能已安裝到C:\\ Program Files(x86)文件夾。它們可能是32位程序。

3.在64位Windows上運行32位應用程序不是一個好主意嗎?

從表面上看,在64位環境中運行32位應用程序似乎很糟糕,或者無論如何都不理想。畢竟,32位應用程序沒有充分利用64位體系結構。沒錯 如果可能,運行該應用程序的64位版本可為可能受到攻擊的應用程序提供其他安全功能。與32位應用程序可以訪問的4 GB相比,64位應用程序可以直接訪問更多的內存。

儘管如此,這些差異使您幾乎不可能注意到在現實世界中運行常規應用程序。例如,通過運行32位應用程序,您不會受到任何性能損失。在Windows的64位版本中,32位應用程序在Windows 64位(WoW64)兼容性層(一個處理運行32位應用程序的完整子系統)的名為Windows 32位的環境下運行。您的32位Windows程序將與在32位版本的Windows上運行的程序大致相同(在某些情況下甚至更好),因此在64位OS上運行這些程序沒有不利之處。

即使您使用的每個程序仍然是32位,您也會從中受益,因為您的操作系統本身正在64位模式下運行。Windows的64位版本更安全。

4.但是64位程序會更好,對嗎?

正如我們前面提到的,運行64位版本的應用程序(如果有)是有優勢的。在Windows的64位版本上,每個32位程序只能訪問4 GB的內存,而64位程序可以訪問更多的內存。如果某個程序可能受到攻擊,則應用於64位程序的其他安全功能將有所幫助。

許多應用程序提供32位和64位版本。Chrome,Photoshop,iTunes和Microsoft Office是一些最受歡迎的Windows程序,並且全部以64位格式提供。要求苛刻的遊戲通常是64位的,因此它們可以使用更多的內存。

但是,許多應用程序都沒有實現這一飛躍,而大多數應用程序基本都沒有64位。您仍然可以在當今的64位版本的Windows上運行大多數具有十年曆史的32位Windows程序,即使它們的開發人員自從64位版本的Windows出現以來就沒有對其進行更新。

想要提供其程序的64位版本的開發人員必須做其他工作。他們必須確保現有代碼可以作為64位軟件編譯並正確運行。他們必須提供並支持該程序的兩個單獨版本,因為運行32位版本的Windows的人們不能使用64位版本。

而且在許多應用程序中,人們根本不會注意到任何區別。讓我們以Evernote的Windows桌面版本為例。即使他們提供了64位版本的Evernote,用戶也可能根本不會注意到差異。32位程序可以在64位版本的Windows上很好地運行,而64位版本沒有明顯的優勢。

5.總結

簡而言之,如果您有選擇的話,一定要抓住應用程序的64位版本。如果您別無選擇,請獲取32位版本,也沒什麼關係其實。

最後,重要的是不要確保您運行的是64位應用程序,而是要確保運行的應用程序對您而言效果很好。如果有一個應用程序的64位版本,則一定要使用它。如果不是,則使用32位版本就可以了。對於大多數應用程序,您甚至都不會注意到差異。


Hacker


64位軟件和32位軟件最大的區別是:64位的軟件可以同時操作大於4GB的內存(注意這裡的內存指的是地址空間,而不是物理內存)。

比如現在有一個10GB的數據庫需要進行排序。64位的軟件可以動態的分配一個10GB的空間把整個數據庫“放進”內存然後使用任意經典排序算法,而32位的軟件在動態分配時就會崩潰。

所以32位軟件的程序員只能使用複雜的算法顯式的分塊讀入,局部排序,寫回數據庫,然後重複。這樣不僅程序複雜難寫,程序員交換內存和文件的算法效率可能也不如操作系統自動處理來的高效。另一方面,64位軟件巨大的內存空間也可能加速物理內存的消耗,增加尋址的開銷,因此未必總是能夠提高性能。當然最終系統的效率還是取決於物理內存的大小,64位只是解決了地址空間的瓶頸。

32位CPU和64位CPU的區別?

32位、64位CPU在指令集合、操作數位數、寄存器名稱和個數等都不相同。

比如一條mov eax,1指令,可能在32位CPU上對應的機器指令是0x1201;在64位機器上就是0x123401。程序對於機器CPU而言,僅僅是一系列順序躺在內存中的01代碼而已,而硬件上直接運行的是操作系統,所以你馬上得出結論:32位的CPU只能運行32位的操作系統,64位同理。

這麼設計的確在理論上沒什麼不妥,實際上intel IA 64架構的處理器就是這樣的,64位的CPU上只能運行64位的操作系統(操作系統本身也是軟件,也是一系列指令序列)。

但這樣問題就來了:我需要升級硬件來提速,難道買了CPU以後,要把上層的操作系統和應用軟件通通換掉?

這種軟硬件不兼容帶來的問題就是,沒有多少客戶會去購買這種沒法兼容32位原有軟件環境的CPU。所以,後來intel和amd都推出了兼容32位原有軟件環境的CPU(intel 的x86&64和amd的amd64)。

也就是說,現在主流的64位CPU,上面可以運行32位和64位的操作系統。

編譯器與程序位數

編譯器也是一個應用軟件,64位機器上的64位編譯器編譯出來的也就是64位的應用軟件。但是有沒有例外呢?

那第一個64位的操作系統是怎麼來的?

我們都知道現在操作系統一般是用C語言實現的,然後像普通程序一樣經過編譯器編譯成可執行文件,難道64位的操作系統不是用64位的編譯器編譯出來的?

很顯然,你的第一個64位的操作系統,需要用“64位”的編譯器來生成,但你的64位的編譯器運行在什麼操作系統上呢?當然,我肯定運行在64位的操作系統之上,那你64位的操作系統從哪裡來呢?死循環狀態中。

所以,必然有一種編譯器,本身是32位的軟件,但能夠將程序編譯成64位的可執行文件,也只有這種情況下,編譯器本身位數和編譯出來程序的位數才不一致。

操作系統位數和軟件位數的關係

這裡,我們首先要弄清一個軟件是如何被運行的,我們以C文件為例,討論我們經典的hello word程序:

#include<stdio.h>

int main(){

printf("hello world")

}

一個源程序首先被預處理,尋找頭文件,將頭文件包括進來,裡面有printf的申明。

然後被編譯成目標文件,注意目標文件已經是二進制文件了,裡面的符號表中有main、printf等,但是很顯然,這個prinf不是我們自己寫的,我們僅僅有它的申明而已。此時如果我們查看目標文件,就會發現目標文件中的printf函數是extern標記,表示這是一個外部符號,並不是我們定義的。顯然,這時目標文件是沒法運行的,因為裡面有未知符號沒有解析。目標文件經過鏈接,形成可執行目標文件。因為操作系統提供了已經編譯好的動態鏈接庫,所以此時我們僅僅經過鏈接,神奇的hello就能執行了。

這樣,你是不是沒有感覺到你的軟件有32位和64位的區別?你管它叫128位都沒問題。

但是,上述過過程有幾個非常重要的地方:

1)動態鏈接庫

2)系統API

首先,你32位的操作系統上一般是沒有64位的庫文件,如果你的應用程序源代碼中引用了只有64位的動態庫中才有的函數,很顯然你鏈接的時候就會出問題。

另外,我們很多程序肯定用到了read和write等C語言庫函數,而庫函數的實現是依賴於系統API的。如果你工作在windows上,程序大多數是以exe形式發佈的,你得到的程序是目標文件以後的結果,本身是帶有位數的;如果你工作在linux上,本身大部分軟件包rpm等也是已經編譯好的,就是說,它們本身就是具有“位數”的。如果你得到的是源碼,那麼基本上你的應用程序還沒有“位數”的概念,你用多少位的編譯器去編譯它,它就是多少位的應用程序。我們這裡討論多少位的程序,都是針對已經編譯到目標文件以後的狀態。

所以32位和64位軟件的並存是CPU、系統、編譯綜合決定的,而這些都是因為時代的需要。對於Windows系統而言,64位的系統上往往有32位的庫和其他必要的信息,基本上能兼容32位的程序。

以上是個人的一些經驗和總結,希望可以幫助到大家,如果有不同意見和建議,歡迎評論區留言討論。

匯聚魔杖


64bit軟件和32bit軟件最大的區別是64bit的軟件可以同時操作大於4GB的內存。注意這裡的內存指的是地址空間,而不是物理內存。

比如現在有一個10GB的數據庫需要進行排序。64bit的軟件可以malloc一個10GB的空間把整個數據庫“放進”內存然後使用任意經典排序算法,而32bit的軟件在malloc時就會崩潰(out-of-memory)。所以32位軟件的程序員只能使用複雜的算法顯式的分塊讀入,局部排序,寫回數據庫,然後重複。這樣不僅程序複雜難寫,程序員swap內存和文件的算法效率可能也不如OS自動處理來的高效。另一方面,64bit軟件巨大的內存空間也可能加速物理內存的消耗,增加尋址的開銷,因此未必總是能夠提高性能。當然最終系統的效率還是取決於物理內存的大小,64bit只是解決了地址空間的瓶頸。

1.32bCPU和64bCPU的區別?

首先二者的指令集合、操作數位數、寄存器名稱和個數等等都不相同;比如一條mov eax,1指令,可能在32bCPU上對應的機器指令是0x1201;在64位機器上就是0x123401。程序對於機器CPU而言,僅僅是一系列順序躺在內存中的01代碼而已,而硬件上直接運行的是操作系統,所以你馬上得出結論:32b的CPU只能運行32b的操作系統,64位亦然。這麼設計的確在理論上沒什麼不妥,實際上intel IA 64架構的處理器就是這樣的,64b的CPU上只能運行64b的操作系統(操作系統本身也是軟件,也是一系列指令序列)。但這樣問題就來了:我需要升級硬件來提速,難道買了CPU以後,要把上層的操作系統和應用軟件通通換掉?坑碟呢?這種軟硬件不兼容帶來的問題就是,沒有多少客戶會去購買這種沒法兼容32b原有軟件環境的CPU。所以,後來intel和amd都推出了兼容32b原有軟件環境的CPU——intel 的x86——64和amd的amd64.也就是說,現在主流的64b處理器,上面可以運行32b和64b的操作系統。

2.編譯器與程序位數?

通常情況下,編譯器也僅僅是一個應用軟件而已,64b機器上的64b編譯器編譯出來的也就是64b的應用軟件。但是有沒有例外呢?想一想:第一個64的操作系統是怎麼來的?我們都知道現在操作系統一般是用C語言實現的,然後像普通程序一樣經過編譯器編譯成可執行文件,難道64b的操作系統不是用64b的編譯器編譯出來的?很顯然,你的第一個64b的操作系統,需要用“64b”的編譯器來生成,但你的64b的編譯器運行在什麼操作系統上呢?當然,我肯定運行在64b的操作系統之上,那你64b的操作系統從哪裡來呢。。。。。。。。。。。。。。是不是覺得陷入循環了!!!!所以,必然有一種編譯器,本身是32b的軟件,但是能夠將程序編譯成64b的可執行文件,也就是操作系統。也只有這種情況下,編譯器本身位數和編譯出來程序的位數才不一致。

3.操作系統位數和軟件位數的關係

這裡,我們首先要弄清一個軟件是如何被運行的。

我們以C文件為例,討論我們經典的hello word程序:

#include<stdio.h>

int main()

{printf("hello world")}

一個源程序首先被預處理,尋找頭文件,將頭文件包括進來,裡面有printf的申明。然後被編譯成目標文件,注意目標文件已經是二進制文件了,裡面的符號表中有main、printf等,

但是很顯然,這個prinf不是我們自己寫的,我們僅僅有它的申明而已。此時如果我們查看目標文件,就會發現目標文件中的printf函數是extern標記,表示這是一個外部符號,並不是我們定義的。很顯然,目標文件是沒法運行的,因為裡面有未知符號沒有解析。目標文件經過鏈接,形成可執行目標文件。因為操作系統提供了已經編譯好的動態鏈接庫,所以此時我們僅僅經過鏈接,神奇的hello就能執行了。這樣,你是不是沒有感覺到你的軟件有32b和64b的區別?你管它叫128b都沒問題。但是,上述過過程有幾個非常重要的地方:

1)動態鏈接庫

2)系統API首先,你32b的操作系統上一般是沒有64b的庫文件的.如果你的應用程序源代碼中引用了只有64b的動態庫中才有的函數,很顯然你鏈接的時候就會出問題。量外,我們很多程序肯定用到了read和write等C語言庫函數,而庫函數的實現是依賴於系統API的。如果你工作在windows上,程序大多數是以exe形式發佈的,你得到的程序是目標文件以後的結果,本身是帶有位數的;如果你工作在linux上,本身大部分軟件包rpm等也是已經編譯好的,就是說,它們本身就是具有“位數”的。如果你得到的是源碼,那麼基本上你的應用程序還沒有“位數”的概念,你用多少位的編譯器去編譯它,它就是多少位的應用程序。我們這裡討論多少位的程序,都是針對已經編譯到目標文件以後的狀態。

4.回到最初的問題:

64位的系統上是否能運行32b的應用程序?

32b的系統上是否能運行64位的應用程序?

1)對於win系統而言,64b的系統上往往有32b的庫和其他必要的信息,基本上能兼容32b的程序。想想,如果不能兼容,那麼操作系統肯定比應用軟件先出來——畢竟軟件是在操作系統上開發的,這樣操作系統出來之後,上面32b的軟件都不能運行了?顯然不是這樣的。也就是說,64b的系統上可以運行32b的程序。

2,32b的系統,一般情況下是沒有64b的庫的,也沒有相關係統api,一般情況下,32b的系統上沒法運行64b的應用程序。


與界


在回答這個問題前,有必要對中央處理器CPU的相關知識普及一下,很多人嘴上常講16位,32位,64位速度如何如何,但概念上很模糊。在此釐清一下。

1,常說的計算機是多少位的,到底指的什麼?

一般講計算機是8/16/32/64位,是指的數據位,而不是地址位。大多數人理解為地址位,如32位,馬上就會說尋址空間為4GB。這是不嚴肅的。照此理論,16位機只有2^16=64K尋址空間嗎?事實上,即使最早的16位機,也有20根地址線,尋址1MB。

2,處理器CPU與數據位有什麼關係?

一般處理器多少位是指通用寄存器的長度,與數據線位數相同。

再次強調,地址線則不需要與之相等。

好比 intel 64 位處理器則是 40 位地址總線,最大支持 1TB 的內存尋址。

32位宏彙編, 32位CPU有4個32位的通用寄存器EAX、EBX、ECX和EDX。所以,32和64表示CPU一次性可以讀/寫的最大位數,在主頻率等外部條件一樣的情況下,理論上64位的執行速度是32位的兩倍。

3,尋址能力決定可支持的最大內存。32位的CPU只能尋址最大4GB的內存,這是因為其地址線也正好是32位。有的廠家做成40位地址線,可支持1TB內存。

4,操作系統向下兼容。即64的CPU可安裝32位的操作系統win10 for32。當然,對CPU來說,是一種浪費,有一半的性能未發揮出來。

5,在win10 for 64系統上開發的app,都是64位的嗎?非也。它還與集成開發及編繹環境IDE有直接關係。現在大部分app都是32位的,64位app很少。原因是軟件開發滯後。


beijingwanger


我們日常使用電腦的過程中,難免會去下載安裝一些軟件,本來是很簡單的一件事,但現在同一款軟件在下載頁中會被分為32位和64位版本,如果下錯了版本可能還無法正常安裝和運行軟件。以前下載軟件沒有這種區分,為什麼現在的軟件都有32位和64位之分呢?這兩者有什麼區別呢?

為什麼電腦系統有32位和64位之分?

現在主流的操作系統(像Windows、Linux等)其實都是有32位和64位之分的,不過在Windows XP那個年代都是32位的,自Windows 7推出後有了64位版本,對於現代的系統我們都是建議安裝64位的。

電腦系統為什麼要有32位和64位之分呢?

其實,電腦系統之所以有32位和64位之分,是取決於CPU的位數!CPU是整臺電腦的核心,可以理解為“人腦”,CPU按照每次處理數據的能力分為32位和64位。簡單說來,如果CPU是32位的,那隻能安裝32位的操作系統(不支持64位系統),若CPU是64位的那就可以安裝64位系統(也支持32位系統)。

32位系統與64位系統的區別

對於同一款系統而言,64位系統相當於是32位系統的升級,兩者雖然功能上一樣,但還是有很多區別的,比如說:

1、可識別內存大小不同

32位操作系統理論上只能識別4G內存(2的32次方字節),而64位系統內存識別能達到PB/TB級了(但實際上很少有超過128G的內存)。

2、64位系統運行速度比32位系統要快

64位的CPU可以運行64位數據指令,而32位CPU只能運行32位數據指令,所以在理論上,64位系統的運算速度比32位要快,當然實際速度取決於很多因素(電腦軟硬件配置及性能)。

3、64位系統上的軟件比32位系統要更“吃內存”

同樣一款軟件,64位的運行後比32位的要更佔內存一些,所以安裝了64位系統的電腦一定要裝大內存。

4、64位系統上可運行32位軟件,但32位系統上難以運行64位軟件

64位系統對32位系統上運行的軟件是做了一定的兼容處理的,所以正常情況下在64位系統上可以運行32位軟件,但32位系統上運行64位軟件就會報錯。


綜上,現在電腦普遍用的是64位的CPU和系統,所以我們下載軟件只需要根據電腦系統的位數選擇就行了。


以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!

網絡圈


因為不清楚題主問的是電腦還是手機,那麼本著先來後到的原則,電腦上先出現64位的,我就當時回答電腦的軟件為什麼區分32位和64位了。

32位和64位,首先體現了操作系統上,當你下載操作系統的時候,一般都會有這種提示,X64和X86。X64代表的就是64位的操作系統,X86代表的就是32位的操作系統。

其實是下載軟件的時候也會提示,是32位還是64位的,一般也是用X86和X64來代替的,這都屬於軟件層面的。

軟件服從於硬件,軟件64位的前提是處理器能支持64位,電腦上64位處理器出現了很久了,蘋果公司的A7是歷史上首款64位的手機處理器。

那麼64位到底是什麼?

從程序上說:32位與64位程序,是指經過語言編譯後的可執行文件,比如 C 語言編寫的程序需要區分 32 位和 64 位。

從系統和硬件上講:CPU一次處理數據的能力是32位還是64位,關係著系統需要安裝32位還是64位的系統。32 位和 64 位中的“位”,也叫字長,是 CPU 通用寄存器的數據寬度,是數據傳遞和處理的基本單位。字長是 CPU 的主要技術指標之一,指的是 CPU 一次能並行處理的二進制位數,字長總是8的整數倍。

64 位 CPU 是指 CPU 內部的通用寄存器的寬度為 64 比特,支持整數的 64 比特寬度的算術與邏輯運算。那麼 32 位 CPU 同理。一個 CPU,聯繫外部的數據總線與地址總線,可能有不同的寬度;術語“64位”也常用於描述這些總線的大小。不過這一術語也可能指電腦指令集的指令長度,或其它的數據項。去掉進一步的條件,“64位”電腦架構一般具有 64 位寬的整數型寄存器,它可支持 64 位“區塊”的整數型數據。64 位架構無疑可應用在需要處理大量數據的應用程序,如數字視頻、科學運算、和早期的大型數據庫。


這麼說是不是很複雜?

我們舉一個例子,有一個人同時能處理32件事情,用時1分鐘,而另一個能同時處理64件事情,用時也是1分鐘。那麼在相同的時間下,64位比32位能處理更多的事情,這就是效率的提升。


反應在軟件上就是64位的軟件會比32位速度更快,運行效率更高。


但是64位的環境是比較苛刻的,要求處理器、操作系統、軟件必須全部支持64位,缺了其中任何一個都不行。而且64位是向下兼容的,什麼意思呢,64位的處理器支持32位的操作系統,64位的操作系統支持32位的軟件。


總結:

64 位版本的程序佔用的內存空間更大,但是更快

64 位 CPU 可以支持更大內存,32 位 CPU 只能支持 4G 及以下內存


極客科技紀元


操作系統有32位的,也有64位的,基本上從win7之後,都是64位的多了。那麼兩種位數之間有哪些區別呢?區別大致有這麼些吧。


區別一:

  當windows 64位操作系統運行起來的時候是要比windows 32位的系統,理論上快2倍,是理論上。從 32位到 64 位架構的改變是一個根本的改變,因為大多數操作系統必須進行全面性修改,以取得新架構的優點。其它軟件也必須進行移植,以使用新的性能;較舊的軟件一般可藉由硬件兼容模式(新的處理器支持較舊的 32 位版本指令集)或軟件模擬進行支持。

  或者直接在 64 位處理器裡面實作 32 位處理器內核(如同 Intel 的 Itanium 處理器,其內含有 x86 處理器內核,用來執行 32 位 x86 應用程序)。支持 64 位架構的操作系統,一般同時支持 32 位和 64 位的應用程序。


  區別二:

  說道最實用的一點,windows 32位操作系統最多能夠支持4G內存(實際上也就差不多3.15 3.25這個樣子)但是呢,如果你裝了64位的操作系統,4G的內存的話,能用的也就是3.7 3.8幾這個樣子,也可以這麼說你的內存小於等於4G。


  區別三:

  windows64位的操作系統,理論上支持的內存很大,更多的是取決於你的主板有多少個插槽。64位操作系統只能安裝在64位電腦上(CPU必須是64位的)。同時需要安裝64位常用軟件以發揮64位(x64)的最佳性能。32位操作系統則可以安裝在32位(32位CPU)或64位(64位CPU)電腦上。

  64位操作系統能和32位操作系統並存麼?答案是肯定,大家可以裝雙系統即可解決,但需要注意4G以上內存在32位系統上最多隻能識別4GB,因此如果是大內存裝機用戶還是首選64位系統吧,畢竟後者也更先進一些。win732位和64位的區別相信大家現在也有了一定的認識了吧。


  區別四:

  這點就是兼容性的問題了,大家應該知道如下圖有兩個文件夾,一個後面有個(x86),X86代表32位,X64代表64位,(X多少代表的是架構的意思,不需要多瞭解)之前32兼容性確實要好一些,但如今嘛,直到win8.1,系統發展的很好,兼容性都不錯。


  區別五:

  目前如果自己的電腦配置足夠的話,建議裝一個windows7 64位旗艦版 不能說他是最好的,只能說他是最兼容的,至於目前win8/8.1這樣的系統,幾乎不用考慮兼容問題!


  區別六:

  如果現在市場上的CPU全部是64位的平臺開發的,那麼現在的所有軟件都使用不了,因為目前大部分的軟件都是基於32位開發的,目前我們說的64位的 windows7系統也只是在32位系統的基礎上添加了一些64位的尋址功能,其實對於我們來說64位的CPU,操作系統意義不大,畢竟我們使用的內存大部分還是2G,使用的也是常用軟件,對於運算速度的要求也不大。


我從事互聯網開發10年,主要的研究方向集中在Java web微服務架構領域,Android移動端研發,HTML5前端方向,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信你一定會有所收穫。

如果有Java,Android,H5等開發方面的問題,或者是開發求職方面的問題,都可以在評論區留言,或者私信我!


一一哥Sun


32位系統的最大尋址空間是2的32次方=4294967296(bit)= 4(GB)左右;64位系統的最大尋址空間為2的64次方=4294967296(bit)的32次方,數值大於1億GB。

1)32位系統的處理器最大隻支持到4G內存,而64位系統最大支持的內存高達億位數,實際運用過程中大多數的電腦32位系統最多識別3.5GB內存,64位系統最多識別128GB內存。

2)一般情況下,我們很大部分的軟件都是在32位架構環境下開發的,這就是為啥64位系統的兼容性不如32位。

3)在32位系統下是無法運行64位軟件的,而64位系統卻支持安裝大部分的32位軟件。在64位系統下32位軟件安裝文件夾帶x86區分的。


春與秋合起來叫春秋


從程序上說:32位與64位程序,是指經過語言編譯後的可執行文件,比如 C 語言編寫的程序需要區分 32 位和 64 位。

從系統和硬件上講:CPU一次處理數據的能力是32位還是64位,關係著系統需要安裝32位還是64位的系統。32 位和 64 位中的“位”,也叫字長,是 CPU 通用寄存器的數據寬度,是數據傳遞和處理的基本單位。字長是 CPU 的主要技術指標之一,指的是 CPU 一次能並行處理的二進制位數,字長總是8的整數倍。

二、64位和32位相比,有哪些優缺點?

64位CPU和32位CPU

64 位 CPU 與 32 位 CPU 的指令集合、操作數位數、寄存器名稱和個數等都不相同。

64 位 CPU 理論上的數據處理能力更強。64 位 CPU 通用寄存器的位寬增加一倍,可以一次性處理 64bit 的整形數據。

64 位 CPU 的內存尋址能力更強。32 位 CPU 地址總線不超過 32,它所能達到的尋址範圍,理論上只能使用約 4GB,即不超過 2 的 32 次方字節; 64 位 CPU,理論上尋址範圍可以達到上億 GB(2 的 64 次方字節)。

當然了,32 位 CPU 的地址總線不一定是 32 位的,也可能是 48 位,64 位的 CPU 地址總線也不一定是 64 位,也可能是 48 位。

但普遍來說,32 位 CPU 只能支持 4G 內存,而 64 位 CPU 可支持更大內存。

64 位系統和 32 位系統

32 位系統在 32 位 CPU 和 64 位 CPU 上均可運行,64 位系統只能在 64 位 CPU 上運行。不過,如果用 64 位的 CPU 運行 32 位的系統,就是殺雞用牛刀,大馬拉小車,並不能很好的發揮出 64 位 CPU 的能力。


分享到:


相關文章: