////前言////
這章節會沿續1-1的概念,將儲存空間視為一本書
沒看過的建議先閱讀,概念才會好理解0.<+
////////////
前一小節將資料儲存的形式,想像為一本含有眾多表格的書
而這小節就要來解讀這些儲存在表格內的資料
首先,翻到這已經填上了資料的一頁,每一個格子內只能記錄著0或1
那麼,簡單的結合縱向與橫向的編號,可以獲得一個bit資料的"地址"
舉例來說,"C0"這個地址儲存了資料"0",簡單吧XD
但是,要記綠、使用的資料那麼複雜,就以一個英文字母"Y"來說,要怎麼用這些"0"或"1"來表示呢?
所以,單單只有"C0"這個地址是不夠的,還必需配上一個解讀的工具,才能達成
而這個工具就是"資料型別" "Data Type"了!!
有了"地址"與"資料型別",你就可以從這些只記錄"0"與"1"的表格中,存取英文字母"Y"囉
事實上,這個表格就記錄著"Y"呢,接著就示範是如何解讀囉
首先,為了解讀英文字母,必需先知道這個c++的"基本資料型別" "Basic Data Type"
那就是"char",事實上就是英文character的縮寫(還是簡寫?)
這種資料型別,需要花費1Byte=8bits的空間記錄
發現到了嗎?要解讀"char"這種的資料,需要一次同時解讀表格中的8個欄位,才可以了解儲存了什麼資料
所以,"C0"配上"char",就表示要將表格的"C0"~"C7"視為同一筆資料(假設資料為左到右,上到下的順序記錄)
將這8個欄位的資料取出,可以得到"01011001"的數列,但看起來還是不像英文字母啊?
因為這個數列,是以"二進制"的方式記錄,即當數值大於等於2時,就必需進位
將其轉換為"十進制"的數值就是"89",但似乎仍無法與英文字母扯上關係啊?
事實上,已經離答案不遠了,只差一個轉換的工具......"ASCII表"(詳細請拜估狗大神)
這個工具簡單來說,就是將英文語系的字母與一些符號,轉換為數字的列表
而此時,把"89"這個數字拿到表上查詢,就可以發現它對應的是字母"Y"!!!
Yes, we do it!!!
終於,從一個只存在"0"與"1"的表格中,得到了字母"Y"的資料,是不是很有趣呢?
來嘗試是否了解這個概念吧! 在地址分別為"D0"和"E0",各別記錄著"char"的資料
各是代表著什麼呢?
至此,如果能了解"地址"、"資料型別"與"表格內容"的概念,那麼就差不多理解了C++中的"pointer"與"value"之間的關係了
下一節,先喘口氣,還不進入什麼"變數、指標、參考、取值、取址#@(*&!%&^*$@...."的內容
提一下與儲存資料最有關係的"硬碟"吧XD
題外話,因為在ASCII表中,a~z與A~Z兩個區間都是沒跳號的
所以想把小寫的字母轉成大寫,只要把資料-32就行囉
反過來,大寫轉小寫,就是將資料+32,有趣吧0.<+
////To be continued////
留言列表