////前言////

這章節會沿續1-1的概念,將儲存空間視為一本書

沒看過的建議先閱讀,概念才會好理解0.<+

Chapter1-1

////////////

1_2_1  

前一小節將資料儲存的形式,想像為一本含有眾多表格的書

而這小節就要來解讀這些儲存在表格內的資料

首先,翻到這已經填上了資料的一頁,每一個格子內只能記錄著0或1

1_2_2

那麼,簡單的結合縱向與橫向的編號,可以獲得一個bit資料的"地址"

舉例來說,"C0"這個地址儲存了資料"0",簡單吧XD

但是,要記綠、使用的資料那麼複雜,就以一個英文字母"Y"來說,要怎麼用這些"0"或"1"來表示呢?

1_2_3

所以,單單只有"C0"這個地址是不夠的,還必需配上一個解讀的工具,才能達成

而這個工具就是"資料型別" "Data Type"了!!

有了"地址"與"資料型別",你就可以從這些只記錄"0"與"1"的表格中,存取英文字母"Y"囉

事實上,這個表格就記錄著"Y"呢,接著就示範是如何解讀囉

1_2_4

首先,為了解讀英文字母,必需先知道這個c++的"基本資料型別" "Basic Data Type"

那就是"char",事實上就是英文character的縮寫(還是簡寫?)

這種資料型別,需要花費1Byte=8bits的空間記錄

發現到了嗎?要解讀"char"這種的資料,需要一次同時解讀表格中的8個欄位,才可以了解儲存了什麼資料

所以,"C0"配上"char",就表示要將表格的"C0"~"C7"視為同一筆資料(假設資料為左到右,上到下的順序記錄)

1_2_5

將這8個欄位的資料取出,可以得到"01011001"的數列,但看起來還是不像英文字母啊?

因為這個數列,是以"二進制"的方式記錄,即當數值大於等於2時,就必需進位

將其轉換為"十進制"的數值就是"89",但似乎仍無法與英文字母扯上關係啊?

1_2_6  

事實上,已經離答案不遠了,只差一個轉換的工具......"ASCII表"(詳細請拜估狗大神)

這個工具簡單來說,就是將英文語系的字母與一些符號,轉換為數字的列表

而此時,把"89"這個數字拿到表上查詢,就可以發現它對應的是字母"Y"!!!

Yes, we do it!!!

1_2_7

終於,從一個只存在"0"與"1"的表格中,得到了字母"Y"的資料,是不是很有趣呢?

來嘗試是否了解這個概念吧! 在地址分別為"D0"和"E0",各別記錄著"char"的資料

各是代表著什麼呢?

1_2_8

至此,如果能了解"地址"、"資料型別"與"表格內容"的概念,那麼就差不多理解了C++中的"pointer"與"value"之間的關係了

下一節,先喘口氣,還不進入什麼"變數、指標、參考、取值、取址#@(*&!%&^*$@...."的內容

提一下與儲存資料最有關係的"硬碟"吧XD

1_2_9  

題外話,因為在ASCII表中,a~z與A~Z兩個區間都是沒跳號的

所以想把小寫的字母轉成大寫,只要把資料-32就行囉

反過來,大寫轉小寫,就是將資料+32,有趣吧0.<+

////To be continued////

arrow
arrow
    文章標籤
    coding pointer 儲存 型別
    全站熱搜

    WillieChuang 發表在 痞客邦 留言(0) 人氣()