以上為題目,應阿思要求,解釋前三題寫法。(用力改圖,把醜字砍光光!) P.s:圖也有更新,紅字為老師公佈的答案,藍字為我自己寫的,不保證對,錯了別來找我,俺不會負責=v=" P.s2:圖有錯,綠字為修正後 第一題: n[0]=20db8,n[1]=20dbc,n[2]=__________,n[255]=___________ 首先題目給出n[0]的起始位置(指在硬碟中的位置)之16進位碼為20db8而n[1]為20dbc 那麼,代表一個位置佔16進位的4,換算成2進位為1000也就是4bit 慢慢推法: 按照題目的意思慢慢推那麼,n[3]會是20dc0......有閒功夫就去推吧XD 0~255共有255個間距,255*4=1020,換算成16進位為3FC,將n[0]加上3FC即為答案。 倒推法: 假設有第256個數存在,那麼他的起始位置便是第255個數之起始位置加上4。 而256*4=1024=2的10次方(1後面10個0),再,2的10次方換算成16進位則為400,故,n[0]之起始位置加上400再減掉4即為答案。 最簡單+偷吃步算法: 請看第二題題目...ch[0]=211b8,此為倒推法假設之第256個數的起始位置,那麼減4即為所求。 更新內容:後面幾題的解釋(極偷懶版) <重要>符號說明: &q => q這個變數的起始位置 q => q變數存放的東西(在此為一個變數的位址) *q => 找到q裡面存放的另一個變數之位址,去那個位址,將那個位址裡存放的值取出 配合下圖: &q => q變數的位置 -> ffbefbbc q => q變數存放的東西 -> 20d70 *q => 去存放之位址將東西取出 -> A -> 16進位為41 5/09更新 黑色為變數名稱,藍色為變數位址,綠色為變數內存放的值。 右邊為mystr的16進位對照表。 char * strrev(char * s) /*此行的第一個char是設定回傳格式為某字的起始位置。第二個char是設定s為存放某變數位置的變數。*/
創作者介紹
創作者 隱狼原 的頭像
otn147

隱狼原

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