c c 學習筆記 3

2022-02-22 02:43:32 字數 1454 閱讀 4933

這次的章節主要是對於按位運算子的掌握,如:~、&、|、>>、<

由於剛剛掌握沒多久,怕自己隔段時間就會生疏,於是拿一道練習題來做解析,以後自己再來看便能更好的熟悉起來。

例題:將x中從第p位開始的n個(二進位制)位設定為y中最右邊的n位的值。

實現:  

view code

1 unsigned setbits(unsigned x, int p, int

n, unsigned y)

2

解析:1、~0 << (p + 1) 

~0將0的二進位制位進行反轉,也就是無限個1,然後向左移動p+1位,如圖:

將0反轉,然後向左移動p+1-n位,然後反轉,如圖:

將1和2中的結果進行按|取值,結果如圖:

將x的值跟前面3步的結果進行按|取值,結果會變成x從p開始的n個位的二進位制值為0,其他值不變,如圖:

5、 ~(~0 << n)

經過上述分析,這個表示式的值就顯而易見了,結尾為n個1,其餘位數為0,如圖:

將y與第五步進行按&取值,其結果為保留y最右邊n位真實值,其他位都為0,如圖:

將第6步的結果向左移動p+1-n位,也就是在最右邊新增p+1-n位0,如圖:

最後的表示式則是將左右兩邊最後的值,進行按|取值,得出最後的結果,如圖:      

C C 學習筆記 基礎知識3

1 和 和 有什麼區別 1 和 對運算元進行求值運算,和 只是判斷邏輯關係。2 和 在在判斷左側運算元就能確定結果的情況下就不再對右側運算元求值。注意 在程式設計的時候有些時候將 或 替換成 或 沒有出錯,但是其邏輯是錯誤的,可能會導致不可預想的後果 比如當兩個運算元乙個是 1 另乙個是 2 時 2...

C C學習筆記

1.儲存型別 標準c語言為變數 常量 函式定義了4種儲存型別 extern,auto,static,register,它們分別用乙個關鍵字 儲存型別說明符 來說明。這4種儲存型別可分為兩種生存期限 永久的 即整個程式執行期間都存在 extern和static 和臨時的 即暫時儲存在堆疊和暫存器中 a...

C,C 學習筆記

1.求a的n次方 標頭檔案pow a,n a,n都為double 2.關於指標的一些小測試 includeusing namespace std int main int a 8 int m 3 cout 3.sort位於 algorithm 中,sort p,p n 預設公升序排列。4.inclu...