當前位置:
首頁 > 最新 > C語言為什麼要學二進位?C語言圖形編程詮釋為什麼要學

C語言為什麼要學二進位?C語言圖形編程詮釋為什麼要學

位運算和繪圖有什麼關係?先舉個例子來個感性認識:使用XOR運算可以實現擦除圖形後不破壞背景,這在時鐘程序中繪製錶針是很有用的。稍後我們會給出這樣的例子。

一、位運算的運演算法則

位運算主要分4種:NOT、AND、OR、XOR,位運算的運算對象是二進位數(十進位要轉換為二進位,計算機會自動轉換)。

運演算法則如下:

1. NOT

表示「取反」,將二進位位的1變0、0變1。

C語言用符號 ~ 表示。

如:

二進位: ~1101 = 0010

用十進位表示就是:~13 = 2

2. AND

表示「並且」,只有兩數的對應二進位位都為1,結果的二進位位才為1;否則,結果的二進位位為0。

C語言用符號 & 表示。

如:

二進位:1101 & 0110 = 0100

用十進位表示就是:13 & 6 = 4

3. OR

表示「或者」,兩數的對應二進位位只要有一個是1,結果的二進位位就是1;否則,結果的二進位位為0。

C語言用符號 | 表示。

如:

二進位:0101 | 0110 = 0111

用十進位表示就是:5 | 6 = 7

4. XOR

表示「異或」,兩數的對應二進位位不同,結果的二進位位為1;相同,結果的二進位位為0。

C語言用符號 ^ 表示。

如:

二進位:0101 ^ 1110 = 1011

以上只是簡單介紹一下,詳細的還是請大家看課本上的講解。

二、位運算的應用

位運算的應用很多,例如 AND 和 OR 在獲取和設置標誌位時經常使用。更多的,以後大家會逐漸遇到,暫時先記下有這麼回事。

這裡著重說一下 XOR 運算,它有一個重要的特性:(a ^ b) ^ b = a

也就是說,a ^ b 之後可能是某些其它數字,但是只要再 ^b 一下,就又成了 a。

一些簡單的加密就用的 XOR 的這個特性。

至於繪圖,假如 a 是背景圖案,b 是將要繪製的圖案,只要用 XOR 方式繪圖,連續繪兩次,那麼背景是不變的。

想要一起學習C++的可以加企鵝裙六四三三九二二二零,裙內有各種資料滿足大家,歡迎加裙

三、演示

我們來一個簡單的繪圖 XOR 運算演示:

運行一下,看到第一次畫線後,矩形與直線相交的部分,顏色變成了青色,青色就是白色和紅色 XOR 的值。當再次以紅色畫線時,青色部分消失了,還原為完整的白色矩形框。

四、完整的範例

來一個相對完整的範例吧,就是鐘錶程序,三個錶針用的都是 XOR 方式繪製,請大家運行體會一下 XOR 的作用:

想要一起學習C++的可以加企鵝裙六四三三九二二二零,裙內有各種資料滿足大家,歡迎加裙

五、作業

最後給出的繪製時鐘的例子,很不完善,有不少問題。請完善該程序。例如樣式上,錶盤上沒有刻度,沒有數字,指針靠中心的一端應該長出來一點點,錶盤太簡單。還有就是嘗試發現並改進功能實現上的問題。作業解答,

想要一起學習C++的可以加企鵝裙六四三三九二二二零,裙內有各種資料滿足大家,歡迎加裙


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 C語言編程入門 的精彩文章:

TAG:C語言編程入門 |