嵌入式C學習第一次任務

2021-10-18 22:29:46 字數 1854 閱讀 6837

運算子描述&

按位與操作,按二進位制位進行"與"運算。運算規則:

0&0=0;

0&1=0;

1&0=0;

1&1=1;

假設a 的值為 60(0011 1100),變數 b 的值為 13(0000 1101),則:

(a & b) 將得到 12,即為 0000 1100

運算子描述|

按位或運算子,按二進位制位進行"或"運算。運算規則:

0|0=0;

0|1=1;

1|0=1;

1|1=1;

(a | b) 將得到 61,即為 0011 1101
運算子描述^

異或運算子,按二進位制位進行"異或"運算。運算規則:

0^0=0;

0^1=1;

1^0=1;

1^1=0;

(a ^ b) 將得到 49,即為 0011 0001
運算子描述~

取反運算子,按二進位制位進行"取反"運算。運算規則:

~1=0;

~0=1;

(~a) 將得到 -61,即為 1100 0011,乙個有符號二進位制數的補碼形式。
運算子

描述<<

二進位制左移運算子。將乙個運算物件的各二進位制位全部左移若干位(左邊的二進位制位丟棄,右邊補0)。

a << 2 將得到 240,即為 1111 0000
運算子

描述》二進位制右移運算子。將乙個數的各二進位制位全部右移若干位,正數左補0,負數左補1,右邊丟棄。

a >> 2 將得到 15,即為 0000 1111
所有未加 static 字首的全域性變數(這裡的全域性變數指在原始檔的開頭處,不包含在原始檔的任何函式內)和函式都具有全域性可見性,其它的原始檔也能訪問。static宣告的函式和變數不能在另乙個檔案中引用,也就是說,如果加了 static,就會對其它原始檔隱藏,無法進行呼叫。

static的第二個作用是保持變數內容的持久。儲存在靜態資料區的變數會在程式剛開始執行時就完成初始化,也是唯一的一次初始化。相較於全域性變數,static可以控制變數的可見範圍。

第三是他的預設初始化值為0

extern主要用來宣告全域性變數,和定義不同,聲與定義不同,它只是宣告出了變數名字,而沒有為其分配空間。

extern

int i;

//宣告變數

int i;

//定義變數

注:在程式中乙個變數可以宣告多次,但只能定義一次。

如果在宣告過程中為其新增了初始值,則其會被當成定義,如:extern int i = 5;

如果要在乙個c檔案中使用另外乙個c檔案中已經定義的全域性變數,就必須使用extern關鍵字。

關鍵字const可以限制某個變數為唯讀,一般的用法為const int num = 10;

其中const int numint const num等價

對於被限制為唯讀的變數,如果嘗試修改他的值,程式將會報錯:

const

int num =10;

num =11;

//編譯錯誤

如果不想讓編譯器察覺到上面到對 const 的操作,我們可以在 const 前面加上 volatile 關鍵字。

volatile 關鍵字跟 const 對應相反,是易變的,容易改變的意思。所以不會被編譯器優化,編譯器也就不會改變對 num 變數的操作。

嵌入式C學習第一次任務

位運算 用於對整數型別 int,char,long 等 變數的二進位制形式的 某一位 bit 或者若干位進行操作。按位與 按位或 按位異或 按位取反 左移 左邊消失,右邊補0 右移 右邊消失,左邊補符號位 位運算的運算元是整數型別或字元型.1.將參與運算的兩運算元各對應的二進位制位進行與 操作,只有...

嵌入式C學習第一次任務

數學中的並且,遇0則清0 數學中的或者,1或0為1 1 0 或1 0 為1 0 按位異或,如果兩個相應的二進位制位值不同則為1,否則為0。取反,1變0 0變1 右移,是將乙個二進位制位的運算元按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0或者補符號位 左移,是將乙個二進位制位的運...

第一次嵌入式C 學習

資料 乘法 2 二進位制下的移位 例如 m 1 m 2 m n m 2 n 4 0 0 1 0 0 8 0 1 0 0 0 第一位與符號變數有關 除法 m n m 2 n int a a n unsigned int a a n a 0 0 遮蔽,遮蔽低八位 a 1 1 取出,取出高八位 清0器 a...