一次偶然看到雜誌《中國最美麗的黑客 MM》,原以為駭客是犯罪代名詞,查資料發現早期是褒義詞,頓生崇拜。加了她 QQ 想跟學,但她網站無系統教程。於是大買計算機好書——《C語言的科學與藝術》《C++沉思錄》……名字皆有藝術氣息。按《如何成為一名黑客》指引一步步來,覺得學習本身是快樂。希望大家指正錯誤。Python 先放放,先啃 C、匯編、作業系統、編譯原理,搞懂解釋器底層細節,心裡才有底。理想很簡單:擁抱著天,要瓶可樂,敲鍵盤輸出快樂!
世界萬物需精確標記。射箭比賽:箭太多數不清,靈機一動用 10 根手指計數,滿 10 進一位——這就是十進制由來(出自《深入理解計算機系統》)。十進制特點:任何數可分解為各位數字 × 權值之和(最右權值 1,左遞增 10、100…)。例:3×1000+4×100+5×10+6×1=3456。掌握位權,任意進制轉十進制極簡單。
除 2 取餘,直到商為 0,餘數從下往上讀。
早期電腦用八進制:二進制太長,八、十六進制是二進制倍數(3 位一組、4 位一組),轉換極快。曾見論壇「邪惡八進制」,名字酷,原來由此而來。
六大運算符:&(與)、|(或)、^(異或)、~(取反)、<<(左移)、>>(右移)。
&雙方皆 1 結果才 1。用途:
(1) 清零:與 0 做與運算。
(2) 取特定位:構造掩碼,欲取位置 1,其餘 0。
|雙方任一為 1 結果為 1。可做全置 1操作,與與運算對稱。
^相同為 0,不同為 1。任何數異或 0 不變。例:x ^ 0xFF 取低 8 位。
#include <stdio.h>
int main(void) {
int x = 1992;
x = x & 0xFF; // 保留低 8 位
printf("%d ", x);
return 0;
}
真有趣!更多妙用待發掘……