為什么要用到非十進制的數制?
答:因為字節是內存的基本數據單位。八進制在計算機系統里不著重要且奇特的作用,或者說所有和二的N次方(2、4、8、16 ... ... 256、512、1024)的數都和計算機有著莫大的聯系。
什么地方,我們會時常見到這些數據?
答:具個人所見,在表示內存地址、寄存器地址、端口地址,及對一些寄存器進行附值操作時,會時常用到。
如何對非十進制數據進行操作?
答:在C里有不少的運算符提供了這些功能。比如:~位取反,& 位邏輯與 ,| 位邏輯或,^ 位邏輯異或,>> 右移,<< 左移 。用這些操作符,可以以二進制的方式操作數據。
為什么要學這些?
答:這個問題很有意思、也是我們在學習之前必須弄清楚的,如果不知道有什么用,那學完很快就會忘記,且學起來毫無熱情可言。廢話多了,當你打算拿C做一些底層操作,或者你打算在不久的將來或你現在就打算征服Linux內核,那就很有必要學學了,學得好是幫助,學得不好是瓶頸,有點言重了,呵呵!!
在眾多的位操作符中,偶最常見的就是"<<"這個啦!所以這些只打算說說它,如果你對其他的感興趣,可自行早資料看看。
首先、你有必要確定你的機器上裝了VC6或VC2005,我這里裝了2005
然后、復制下面這個程序,到你機器上運行下











為什么是1024?
看到沒?上面的代碼,中間有一句是怎么寫的 > a = a<<10;
對,就是它了,左移位運算符號,這句話做的事情是:
先將a里的1轉化為二進制的1,然后將他左移10位,每移一位補一個0上去,運行這句之后a在機器里的二進制就成了 10000000000 化為十進制 1*210=1024
哈哈,是不是有點暈,沒事,再運行下,下面的程序就完全了解了

















總結一下,這里a<<n 可以看成 a * 2n 這下了解吧^_^
接下來再介紹下如何在頭文件里使用<<吧!在頭文件里定義的是宏,所以,一旦定義錯誤,編譯的時候并不會提示出錯,而運行就找了麻煩了,所以一定要小心哦!下面給個簡單的例子吧!
i.h












上面,不過是些極其簡單的內容,如果想正真了解,請多看一些低層代碼并多多實踐吧!
地震讓大伙知道:居安思危,才是生存之道。

posted on 2008-02-09 20:37 小尋 閱讀(586) 評論(1) 編輯 收藏 所屬分類: c/c++/C#/pasic/vb/php/asp(.net)/win-cgi/xml...