1. 程式人生 > >32位和64位各種資料型別長度

32位和64位各種資料型別長度

一)64位系統和32位有什麼區別? 

1、64bit CPU擁有更大的定址能力,最大支援到16GB記憶體,而32bit只支援4G記憶體

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個位元組

轉自:http://www.cnblogs.com/lovevivi/p/3334369.html

相關推薦

各種資料型別在163264系統下所佔位元組差異簡介

編寫C、C++程式時需要考慮每種資料型別在記憶體中所佔的記憶體大小,即使同一種資料型別在不同平臺下所佔記憶體大小亦不相同,具體對比如下: 資料型別 16位系統(byte) 32位系統(by

3264各種資料型別長度

一)64位系統和32位有什麼區別?  1、64bit CPU擁有更大的定址能力,最大支援到16GB記憶體,而32bit只支援4G記憶體 2、64位CPU一次可提取64位資料,比32位提高了一倍,理論上效能會提升1倍。但這是建立在64bit作業系統,64bit軟體的基礎

C/C++3264編譯器下,各資料型別指標變數分配記憶體大小

1. 32位定址空間 資料型別 佔用位元組數(位元組) 說明 資料型別 佔用位元組數(位元組) 說明 Bool 1 char 1

Object c/swift,java,c/c++在3264各個平臺上基本資料型別 所佔有的位元組數

現在很多app和伺服器互動,雙方收到對方收據,怎麼才能完整解析訊息,是大家都會遇到的問題。現在來看以下他們的位元組長度差異。 iOS 64位編譯器,對應64位系統,包含機型(iphone5s—同時執行32位應用和64位應用,iphone6, iphone6

3264作業系統中各個資料型別的大小

(一)32位系統和64位有什麼區別?  1、64bit CPU擁有更大的定址能力,最大支援到16GB記憶體,而32bit只支援4G記憶體; 2、64位CPU一次可提取64位資料,比32位提高了一倍,理論上效能會提升1倍。但這是建立在64bit作業系統和64bit軟體的基礎

常用資料型別3264CPU上的位元組數比較

作者:天之驕子 tags:64 C C++ C/C++ 在C/C++中,64為整型一直是一種沒有確定規範的資料型別。現今主流的編譯器中,對64為整型的支援也是標準不一,形態各異。一般來說,64位整型的定義方式有long long和__int64兩種(VC還支援_int64),而輸出到標準輸出方式有prin

sizeofstrlen、3264系統各型別長度

sizeof:申請了多少記憶體空間或者,例如char a[20],sizeof(a)=20。若為char a[],他的大小應該為使用了多少大小就為多少。 strlen計算字元陣列的長度時,是以找到0或者\0作為終止。若末尾沒有0或者\0作為結束,則不會計算出正確的字元陣

3264系統,到底哪個好?

操作系統 32位系統 64位系統 今天這是個純理論分享了,32位和64位系統有什麽區別?我們到底用哪個好?這個問題在xp時代都不存在,vista系統不談,從win7開始,才出現在我們面前,讓我們抉擇。相信好多人不懂或有些誤區,更甚至有部分自稱為【專家】的人告訴你用32位的,用64位的系統好多軟件都

如何同時支持3264組件自動安裝

需要 win32 目錄 js代碼 off window lsi blank left weboffice論壇 ActiveX可以通過瀏覽器自動從服務器安裝到客戶端,但是IE目前有32位版本和64位版本,對應的ActiveX也分為32位版本和64位版本;由於是兩個版本的兩個

IOS objc_msgSend 3264

padding com cto style else 執行 蘋果官方 sele orm objc_msgSend(obj,normalSelector,command) 只支持32位如果在64位可能出現類的賦值出錯 如: 假如 obj 是CDVPlugin類 normalS

如何在64windows7上同時使用3264的Eclipse

blog post 以及 卸載 jdk 實現 eclipse 刪除 oracl  64位機器上可以同時運行32位和64位的Eclipse,但是電腦中必須有相應的jdk。Eclipse雖然不需要安裝,但是在啟動時會檢查系統中固定文件夾下是否有合適的jre。例如32位Ec

3264系統的區別

blank 內存 jce com 解釋 理論 light 一次 body 系統32位和64位官方解釋 32位和64位操作系統是指:CPU一次處理數據的能力是32位還是64位。現在市場上的CPU一般都是64位的,但是這些CPU並不是真正意義上的64 位CPU,裏面依然保留了大

蘋果產品時間發布表統計(iPhone、iPad),以及3264機的說明

bsp 產品 13.10 上市 pos min ipad mini 時間排序 手機 之前因為某些原因,需要對apple家族的手機和pad產品做一個上市時間排序,以及分析分別是哪種CPU機型 總結如下: iPad家族: 1、iPad     - 2010.1.27發布 2、

3264的區別

32位和64位的區別 位=bit,代表0或1, 比如 0000,代表4位,00001111代表8位 位元組=byte=B=8bit ,一個位元組就是8位 字長:CPU在單位時間內能一次處理的二進位制數的位數叫字長(word size) 32位CPU   

Qt5.9.7 for ARM的編譯安裝(3264

Qt5.9.7 for ARM的編譯安裝   下載原始碼 前往http://download.qt.io/official_releases/qt/5.9/5.9.7/single/下載最新版的原始碼(我這裡下載的是當時最新的5.9.7)qt-everywhere-o

【原始碼】宣告3264Access、Excel等VBA相容的API函式的方法

1.在宣告中加上  PtrSafe 關鍵字2.加上VBA7 及Win64的判斷 Declare 語句 PtrSafe 關鍵字(可參考VBA幫助)帶有 PtrSafe 關鍵字的 Declare 語句為建議的語法。要使包括 PtrSafe 的 Declare 語句能同時在 32 位和

Oracle10g下載地址--多平臺下的3264

4種包的介紹:                     ***_database_*.zip &

32/64系統,jdk326432/64jdk編譯出來的classeclipse 3264

首先關於32位/64位系統,jdk32位,64位,32/64位jdk編譯出來的class和eclipse 32位和64位的一些對應關係做些說明。 1.32位作業系統不可以裝64位jdk,64位作業系統一般都可以安裝32位jdk,64位jdk是完美髮揮效能的。 2.64位eclipse只能在6

3264程式的區別

轉自:https://blog.csdn.net/nma_123456/article/details/45077345 由於作業系統記憶體分配的不同,導致軟體開發過程中,需要編譯不同版本的軟體,此處以VS為例。 1、編譯程式根據需要選擇不同的編譯環境:

3264系統區別及int位元組數

一、64位系統和32位有什麼區別? 1、64bit CPU擁有更大的定址能力,最大支援到16GB記憶體,而32bit只支援4G記憶體 2、64位CPU一次可提取64位資料,比32位提高了一倍,理論上效能會提升1倍。但這是建立在64bit作業系統,64bit軟體的基礎上的。 什麼是64位處理器? 之所以叫