看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《ntueestudent (bluesky)》之銘言: : 這個問題可能太初學了一點 : 不過我還是不太清楚 : 一個variable的"value"究竟是什麼意思?? : 又第一題問的"maximal value"是什麼呢?? : 可以解釋一下嗎?? : 謝謝~! 當你在程式中寫像 --- int i; char ch; "i" 以及 "ch" 是 variables. 他們用來儲存不同(型態)的值 (values), 用來給你的程式來做運算, 比方說: i = a + b; // a and b are other int variables if (ch == 'q') exit(); // exit() quits the program. 但是想想看對電腦來說, 他 care 的其實只是值 (value) 而已, 像 "a + b" 電腦做的事就是 "將 a 的值與 b 的值加起來". 要做到這樣, 必須有兩件事情配合: 1. 電腦要將 a 與 b 存起來, 存在 memory 裡, 才能給算數單元 (硬體) 去作加法. 而去存一個 integer, 需要用 四個 Bytes (= 8 * 4 = 32 bits) 的記憶體. 2. Compiler 要知道 a, b 這兩個 symbols 是對應到哪兩個記憶體位置, 所以會用一個 "symbol table" 將 a, b 等 varialbe symbols 與記憶體位置 做一個 mapping. 所以 compile 之後才能將 a+b 編譯成: add (a 的記憶體位置), (b 的記憶體位置) 的 assembly (machine) code. 而 另一個問題, variable 的 maximum value, 自然就是這樣的記憶體可以表示到多大的 value. 比方說, int ==> 32 bit ==> max value = 2^32 - 1 (減一是因為從 0 開始) ====== 唉, 今天才在車上跟學生說 NTUEE 應該要先學 計算機概論, 再學 計算機程式... 大家覺得呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.134.53
Steggie:我以前修的計概有好幾個 homework 要寫程式 ^^" 10/20 01:13
Steggie:所以計程是 prerequisite... 10/20 01:13
ric2k1:oh... I see... 不過覺得同學們有一些基礎的計概知識 10/20 01:16
ric2k1:學起計程可能會比較有感覺... 10/20 01:17
Steggie:其實也是 ^^" 那時候計概寫的 hw 主要也只是 implement 一 10/20 01:41
Steggie:些學到的概念 如果先學計概 等到計程再來做這些 也不遲 10/20 01:42
Knossos:那就折衷吧!像資工一樣一次修兩門..XD 10/20 11:58
flarehunter:我覺得應該先跳過class 等到教完自訂函式之後再回來教 10/20 12:28
flarehunter:一開始就教class好像太難了一點 10/20 12:29
love20123:我也覺得...一開始就教class真的好難 10/20 14:49
love20123:對沒學過的人而言真的不太容易了解(ex:我>"<)... 10/20 14:49