計算機編程語言的基本數據類型設計

在計算機編程語言的學習中,很多初學者甚至好幾年的老手對基本類型的應用和理解都存在著一些模糊的地方,今天我就拿C語言和Java語言中的基本類型來舉例,深度解剖它們的設計原理。

一、計算機存儲處理信息的單位

  • 1bit(位): 表示一個二進制數碼0或1,是計算機存儲處理信息的最基本的單位(存儲單元)。這里的bit和電信號之間通過高(1),低(0)電平進行對應處理,讓硬件做出相應的操作。

  • byte(字節):一個字節由8個位組成 。它表示作為一個完整處理單位的8個二進制數碼。現目前計算機上多使用《美國國家信息交換標準代碼》——ASCII編碼(由美國國家標準委員會制定),如:字符“A”的二進制編碼是“0100 0001”即41H或65D “#”的二進制編碼是“0010 0011”即23H或35D,一個漢字是兩個字節,一個英文字母是一個字節,標點符號也是一個字節。
    注意:因為byte是一個完整處理單位(這個一個規定設計),所以編程語言中數據類型的長度基本單位為字節。

  • 字(Word):16個位為一個字(即兩個字節是一個字) ,它代表計算機處理指令或數據的二進制數位數,是計算機進行數據存儲和數據處理的運算單位。通常稱16位是一個字,32位是一個雙字,64位是兩個雙字。

注意:
1、bit的設計是根據二進制0,1設計,電信號和數字通信間通過高低電平進行通信,而高低匹配二進制的1,0。
2、一個存儲單元(一個byte)都有一個地址,是一個整數編碼,可以表示為二進制整數。編程語言中的變量和主存儲器的存儲單元相對應。變量的名字對應著存儲單元的地址,變量內容對應著單元所存儲的數據。(C語言中的指針,地址,值)
3、一個byte的完整處理單元(存儲/讀取/解析),是CPU與存儲器間的地址總線和數據總線寬度設計的基本單元,個別芯片會出現地址總線20位,大部分都是一個byte的倍數,因為馮諾依曼結構是順序執行指令。

二、計算機中的字長,尋址空間,字符的概念

  • 字長:是CPU的主要技術指標之一,指的是CPU一次能并行處理的二進制的位數,字長是8的整倍數,通常的PC機的字長為16位,32位,64位。一臺16位字長的PC機可以直接處理216(65536)之內的數字,對于超過此范圍的數字需要分解的方法來處理。32位機比16位機優越的原因之一就在于它在一次操作中能處理的數字大,32位機字長的PC機能直接處理的數字為232(40億),能處理的數字越大,則操作的次數就越少,從而系統的效率就越高。

  • 尋址空間:要看處理器的地址總線的位數,而不是它的字長。如Intel P4處理器字長為32位,地址總線也是32位。8086的數據總線為16為,地址總線為20位(則可尋址的內存空間為220=1MB)。新興的64位處理器的數據總線為64位,地址總線大部分是32位。再看地址總線與尋址范圍的關系,存儲單元是以Byte為單位,N根地址總線能夠訪問2N個存儲單元,于是有32位地址總線可訪問2^32個存儲單元,即4GB。

  • 字符:是可使用多種不同字符方案或代碼頁來表示的抽象實體。例如,Unicode UTF-16 編碼將字符表示為 16 位整數序列,而 Unicode UTF-8 編碼則將相同的字符表示為 8 位字節序列。公共語言運行庫使用 Unicode UTF-16(Unicode 轉換格式,16 位編碼形式)表示字符。

注意:
1、字長取決于它的通用寄存器、內存儲器、ALU的位數和數據總線的寬度。字長=2^數據總線位數
2、尋址空間就是CPU一次性能夠尋找多大內存,然后再從這些內存地址中找到匹配的地址。尋址空間=2^地址總線
3、字符是字符方案的實體,字符方案(字符編碼)是人類語言和計算機二進制編碼間的協議方案。

三、C與Java基本數據類型設計

編程語言如果需要做和人類直接溝通,那么需要對我們認知的數字和字符進行定義,所以編程語言的基本數據類型也分為字符和數字

C/Java基本類型占位及取值范圍比較

注意:
1、不同編譯系統,整數的存儲長度不同。對于16位的編譯系統,int為2字節;而對于32位的編譯系統,int為4字節。可以用sizeof運算符測試。
2.、而且在C/C++中可以通過類型修飾符signed和unsigned用于修飾字符型和整型。
3.、對于C/C++語言long是32bit是歷史的包袱, long long是8字節

四、對于float和double的取值范圍和精度

首先我們了解下它們的內存結構,如下圖所示:


float和double的結構
  • 1、范圍
    float和double的范圍是由指數的位數來決定的
     float取值范圍  2^(-2^7~+2^7-1)
     double取值范圍  2^(-2^10~+2^10-1)
  • 2、精度
    float和double的精度是由尾數的位數來決定的。浮點數在內存中是按科學計數法來存儲的,其整數部分始終是一個隱含著的“1”,由于它是不變的,故不能對精度造成影響。
    float的精度2^23=8388608   7位有效數字  
    double的精度2^52=4503599627370496  15位有效數字

注意
1、因為浮點數精度左邊還有一個隱含著的1所以 float 7-8位有效數字 double 15-16位有效數字。

針對enum,bool,boolean,指針等類型這里不再討論

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容

  • 8086匯編 本筆記是筆者觀看小甲魚老師(魚C論壇)《零基礎入門學習匯編語言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,310評論 8 114
  • 總線 計算機的各個功能部件通過總線連接在一起構成完整的計算機系統,總線是多個系統功能部件之間進行數據傳送的公共通路...
    羅蓁蓁閱讀 4,866評論 0 10
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,062評論 6 13
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo閱讀 3,753評論 1 20
  • 長相思·秋羈 山依舊,水依舊。 一江煙雨洗新秋。 炊煙隔疏柳。 思悠悠,恨悠悠。天涯倦客何時休。 日暮泊孤舟。 長...
    嫣然66閱讀 367評論 2 6