計算機編程語言的基本數(shù)據(jù)類型設計

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

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

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

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

  • 字(Word):16個位為一個字(即兩個字節(jié)是一個字) 畦贸,它代表計算機處理指令或數(shù)據(jù)的二進制數(shù)位數(shù),是計算機進行數(shù)據(jù)存儲和數(shù)據(jù)處理的運算單位楞捂。通常稱16位是一個字薄坏,32位是一個雙字,64位是兩個雙字寨闹。

注意:
1胶坠、bit的設計是根據(jù)二進制0,1設計,電信號和數(shù)字通信間通過高低電平進行通信繁堡,而高低匹配二進制的1,0沈善。
2、一個存儲單元(一個byte)都有一個地址椭蹄,是一個整數(shù)編碼闻牡,可以表示為二進制整數(shù)。編程語言中的變量和主存儲器的存儲單元相對應绳矩。變量的名字對應著存儲單元的地址罩润,變量內(nèi)容對應著單元所存儲的數(shù)據(jù)。(C語言中的指針翼馆,地址割以,值)
3、一個byte的完整處理單元(存儲/讀取/解析)写妥,是CPU與存儲器間的地址總線和數(shù)據(jù)總線寬度設計的基本單元拳球,個別芯片會出現(xiàn)地址總線20位,大部分都是一個byte的倍數(shù)珍特,因為馮諾依曼結(jié)構(gòu)是順序執(zhí)行指令祝峻。

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

  • 字長:是CPU的主要技術(shù)指標之一,指的是CPU一次能并行處理的二進制的位數(shù)嗜桌,字長是8的整倍數(shù)奥溺,通常的PC機的字長為16位,32位骨宠,64位浮定。一臺16位字長的PC機可以直接處理216(65536)之內(nèi)的數(shù)字相满,對于超過此范圍的數(shù)字需要分解的方法來處理。32位機比16位機優(yōu)越的原因之一就在于它在一次操作中能處理的數(shù)字大桦卒,32位機字長的PC機能直接處理的數(shù)字為232(40億)立美,能處理的數(shù)字越大,則操作的次數(shù)就越少方灾,從而系統(tǒng)的效率就越高建蹄。

  • 尋址空間:要看處理器的地址總線的位數(shù),而不是它的字長裕偿。如Intel P4處理器字長為32位洞慎,地址總線也是32位。8086的數(shù)據(jù)總線為16為嘿棘,地址總線為20位(則可尋址的內(nèi)存空間為220=1MB)劲腿。新興的64位處理器的數(shù)據(jù)總線為64位,地址總線大部分是32位蔫巩。再看地址總線與尋址范圍的關(guān)系谆棱,存儲單元是以Byte為單位快压,N根地址總線能夠訪問2N個存儲單元圆仔,于是有32位地址總線可訪問2^32個存儲單元,即4GB蔫劣。

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

注意:
1沪曙、字長取決于它的通用寄存器、內(nèi)存儲器萎羔、ALU的位數(shù)和數(shù)據(jù)總線的寬度液走。字長=2^數(shù)據(jù)總線位數(shù)
2、尋址空間就是CPU一次性能夠?qū)ふ叶啻髢?nèi)存贾陷,然后再從這些內(nèi)存地址中找到匹配的地址缘眶。尋址空間=2^地址總線
3、字符是字符方案的實體髓废,字符方案(字符編碼)是人類語言和計算機二進制編碼間的協(xié)議方案巷懈。

三、C與Java基本數(shù)據(jù)類型設計

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

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

注意:
1凑保、不同編譯系統(tǒng),整數(shù)的存儲長度不同涌攻。對于16位的編譯系統(tǒng)愉适,int為2字節(jié);而對于32位的編譯系統(tǒng)癣漆,int為4字節(jié)维咸。可以用sizeof運算符測試惠爽。
2.癌蓖、而且在C/C++中可以通過類型修飾符signed和unsigned用于修飾字符型和整型。
3.婚肆、對于C/C++語言long是32bit是歷史的包袱, long long是8字節(jié)

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

首先我們了解下它們的內(nèi)存結(jié)構(gòu),如下圖所示:


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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颠放,一起剝皮案震驚了整個濱河市排惨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碰凶,老刑警劉巖暮芭,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痒留,居然都是意外死亡谴麦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門伸头,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匾效,“玉大人,你說我怎么就攤上這事恤磷∶婧撸” “怎么了野宜?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長魔策。 經(jīng)常有香客問我匈子,道長,這世上最難降的妖魔是什么闯袒? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任虎敦,我火速辦了婚禮,結(jié)果婚禮上政敢,老公的妹妹穿的比我還像新娘其徙。我一直安慰自己,他們只是感情好喷户,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布唾那。 她就那樣靜靜地躺著,像睡著了一般褪尝。 火紅的嫁衣襯著肌膚如雪闹获。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天河哑,我揣著相機與錄音避诽,去河邊找鬼。 笑死灾馒,一個胖子當著我的面吹牛茎用,可吹牛的內(nèi)容都是我干的遣总。 我是一名探鬼主播睬罗,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼旭斥!你這毒婦竟也來了容达?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤垂券,失蹤者是張志新(化名)和其女友劉穎花盐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菇爪,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡算芯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凳宙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熙揍。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖氏涩,靈堂內(nèi)的尸體忽然破棺而出届囚,到底是詐尸還是另有隱情有梆,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布意系,位于F島的核電站泥耀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛔添。R本人自食惡果不足惜痰催,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迎瞧。 院中可真熱鬧陨囊,春花似錦、人聲如沸夹攒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咏尝。三九已至压语,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間编检,已是汗流浹背胎食。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留允懂,地道東北人厕怜。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像蕾总,于是被迫代替她去往敵國和親粥航。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容