32位和64位系統區別和資料位元組

2021-07-04 12:25:40 字數 1653 閱讀 1239

1、64bit cpu擁有更大的定址能力。

2、64位cpu一次可提取64位資料,比32位提高了一倍,理論上效能會提公升1倍。但這是建立在64bit作業系統,64bit軟體的基礎上的。

什麼是64位處理器?

之所以叫做「64位處理器」,是因為電腦內部都是實行2進製運算,處理器(cpu)一次處理資料的能力也是2的倍數。8位處理器、16位處理器、32位處理器和64位處理器,其計數都是2的倍數。一次處理的資料越大,該電腦處理資訊的能力越來越大;因此64位處理在先天就比32位處理器具有快速的能力。那為什麼不用更高階的128位處理器呢?因為位數越高,處理器晶元的設計也就越複雜,目前的技術水平暫時無法製造這麼複雜的晶元。

64位處理器之失

※硬體———缺乏驅動程式,很多現有硬體無法使用

※軟體———作業系統不是問題,但是軟體出現不相容難題

64位處理器之得

※硬體———更快的執行速度,更大的記憶體管理

※軟體———最新的尖端軟體首先出現在64位平台

程式執行平台

不同的平台上對不同資料型別分配的位元組數是不同的。

個人對平台的理解是cpu+os+compiler,是因為:

1、64位機器也可以裝32位系統(x64裝xp);

2、32位機器上可以有16/32位的編譯器(xp上有tc是16位的,其他常見的是32位的);

3、即使是32位的編譯器也可以弄出64位的integer來(int64)。

以上這些是基於常見的wintel平台,加上我們可能很少機會接觸的其它平台(其它的cpu和os),所以個人認為所謂平台的概念是三者的組合。

雖然三者的長度可以不一樣,但顯然相互配合(即長度相等,32位的cpu+32位的os+32位的compiler)發揮的能量最大。

理論上來講 我覺得資料型別的位元組數應該是由cpu決定的,但是實際上主要由編譯器決定(佔多少位由編譯器在編譯期間說了算)。

常用資料型別對應位元組數

可用如sizeof(char),sizeof(char*)等得出

32位編譯器:

char :1個位元組

char*(即指標變數): 4個位元組(32位的定址空間是2^32, 即32個bit,也就是4個位元組。同理64位編譯器)

short

int : 2個位元組

int: 4個位元組

unsigned

int : 4個位元組

float: 4個位元組

double: 8個位元組

long: 4個位元組

long

long: 8個位元組

unsigned

long: 4個位元組

64位編譯器:

char :1個位元組

char*(即指標變數): 8個位元組

short

int : 2個位元組

int: 4個位元組

unsigned

int : 4個位元組

float: 4個位元組

double: 8個位元組

long: 8個位元組

long

long: 8個位元組

unsigned

long: 8個位元組

32位 和 64位系統區別

1.32位系統cpu一次可處理32位資料,即一次處理4個位元組。64位系統cpu一次可處理64位資料,即一次處理8個位元組。通俗一點說 32位,就相當於你擁有32個工人,每次能完成32個工人的工作量 64位,就相當於你擁有64個工人,每次能完成64個工人的工作量 總結 由32位系統過渡到64位系統,...

系統64位和32位的區別

從程式上說 32位與64位程式,是指經過語言編譯後的可執行檔案,比如 c 語言編寫的程式就需要區分是32位的還是64位 從系統和硬體上講 cpu一次處理資料的能力是32位還是64位,關係著系統需要安裝32位還是64位的系統 32 位和 64 位中的 位 也叫字長,是 cpu 通用暫存器的資料寬度,是...

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

一直糾結32位和64位作業系統倒底有哪些區別?32位作業系統最大只支援4g記憶體嗎?可是明明看到伺服器記憶體顯示是大於4g的,到底怎麼回事?經過一番查閱終於搞明白了。作業系統有32位和64位之分,主要是因為存在32位,64位的cpu,其實是依據cpu解析的字組大小而來的 也有說是定址能力,我想可能是...