////前言////

在決定寫與Coding相關的文章後,第一個想到的主題便是"指標~Pointer~"

為了能更清楚的表達威利的理解方式,認為以圖像化最能傳達概念

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

1_1_1.png     

首先,Chapter1都是與指標相關,以威利自己覺得最容易理解的順序一一記錄下來

那麼,就開始第一小節的內容吧~~~

 

資料儲存,是的,威利認為應該從最根本,資料儲存的方式講起

最可以清楚了解指標的來龍去脈,也方便說明指標的概念與應用等

那麼,在電腦上,最小的儲存單位是什麼呢?   

1_1_2.png  

答案是"bit" "位元",它僅能儲存兩種狀態,也就是"0"或是"1"

不可思議吧?不論是電腦還是智慧手機,都是靠這最小的儲存單位在運作著

1_1_3.png    

但在現在的系統中,通常使用的最小單位是"Byte" "位元組"

顧名思義,就是多個bit的集合,而1 Byte = 8 bits

檢視任一個檔案的內容,都可以看到

1_1_4.png  

而這邊有個有趣的題外話,為什麼Windows顯示的1KB並不等於1000Byte呢?

1_1_5.png  1_1_6.png    

沒錯,為什麼會有這個落差呢?事實上雖然Windows系統的單位是寫著"KB"

但其中的"K"並不是以十進制的"1000"計算,而是以二進制的"Kibi",也就是"2的10次方"="1024"計算的

詳細的定義可以在wiki查詢"二進制乘數詞頭",有更清楚的單位歷史,就不再多說

"1MB"="1024KB"="2的20次方 Byte",以此類推,"1GB"="2的30次方 Byte","1TB"="2的40次方 Byte"

所以十進制與二進制的"1TB"有不小的誤差,"100TB(十進制)"約等於"90.9TiB(二進制)"

這也就是為什麼買了一顆標示著"1TB"的硬碟,Windows系統卻只能抓到"900多GB"的原因

因為兩者用的進制跟本不相同,所以並不是廠商偷吃步喔XD

 

回到主題,以威利的理解方法,首先把儲存空間想像成一本書

1_1_7.png  

而書中的內容,每頁都有一張表格的存在,而剛剛提到的bit,就是填寫在每一格空格中

這樣這本書就能記錄bit格式的資料了

為了後續說明,這個表格在緃向有8個欄位,並且編號為0~7(在coding中的index,通常都是從0開始)

橫向的數量就沒有限定個數,而為了不混淆兩個方向的編號,橫向就以英文字母表示

1_1_8.png    

一個一個bit獨自看,就只能表達"0"或"1",所以需要將多個bit視為同一個資料再解讀,才能獲得實際所需的資料

但是,應該將多少個bit視為同一筆資料,並且該如何解讀呢?

這些就是下一篇的重點囉~~~

////To be continued////

 

 

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

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