操作符使用

2021-09-23 10:33:28 字數 3318 閱讀 9690

1.

寫乙個函式返回引數二進位制中 1 的個數

比如: 15 0000 1111 4 個 1

程式原型:

int count_one_bits(unsigned int value)

#include#include#pragma warning (disable:4996)

//方法一

int count_one_bits1(unsigned int n)

n = n / 2;//二進位制右移一位

} return count;

}//方法2

int count_one_bits2(unsigned int n)

} return count;

}//方法3

int count_one_bits3(unsigned int n)

return count;

}int main()

2.獲取乙個數二進位制序列中所有的偶數字和奇數字,

分別輸出二進位制序列。

#include#include#pragma warning (disable:4996)

int main()

printf("\n");

printf("奇數序列為:");

for (i = 30; i >= 0; i -= 2)

printf("\n");

system("pause");

return 0;

}

3. 輸出乙個整數的每一位。

#include#include#pragma warning (disable:4996)

int print(int x)

printf("%d", x % 10);

return 0;

}int main()

4.程式設計實現:

兩個int(32位)整數m和n的二進位制表達中,

有多少個位(bit)不同?

輸入例子:

1999 2299

輸出例子:7

#include#include#pragma warning (disable:4996)

int main()

m = m >> 1;

n = n >> 1;

} printf("count=%d\n", count);

system("pause");

return 0;

5.總結c語言操作符:

1.算數操作符:+ - * / %

①除了%操作外,其他的幾個操作符可以作用於整數和浮點數

②對於/操作符如果兩個運算元都為整數,執行整數除法。而只要有浮點數執行的就是浮點數除法

③%操作符的兩個運算元必須為整數。返回的是整除之後的餘數。

2.移位操作符:<< 左移操作符   >>右移操作符

左移操作符 移位規則:左邊拋棄,右邊補0

右移操作符 移位規則:①邏輯移位 左邊用0填充,右邊丟棄

②算數移位 左邊用原該值的符號位填充,右邊丟棄

警告:對於移位操作符,不要移動負數字  int num=10; num>>-1 //error

3.位操作符:

&   按位與

|    按位或  任何數和1按位或都是1

0按位或都是它本身

^    按位異或  相異為真 任何數和0按位異或都是它本身

4.賦值操作符

5.復合賦值符:+= , -= , *=,/=,%=,>>= ,<<=, &=,|=, ^=

sizeof 運算元的型別長度(以位元組為單位)sizeof(a),sizeof(int)

sizeof a,sizeof int(error)

~  對乙個數的二進位制按位取反,

--  前置、後置-- ,++  前置後置++, ①++a/--a(先對a進行自增/自減,然後再使用a)

②a++/a--(先對a先使用,再自增/自減)

*  間接訪問操作符(解引用操作符) ,(型別)強制型別轉換 int a=9; float f=(float) a;

7.邏輯操作符:結果只能是1或0,&& 邏輯與 (兩個同時為真時結果為真)  ||邏輯或(至少有乙個為真時結果為真)

①區分按位與和邏輯與:1&2->0  1&&2->1

②區分按位或和邏輯或:1|2->3    1||2->1

//360筆試題

#includeint main()

8.條件操作符 :exp1?exp2:exp3

9.逗號表示式:exp1,exp2,exp3,...expn  

逗號表示式,就是用逗號隔開的多個表示式。逗號表示式,從左向右依次執行。整個表示式的結果是最後乙個表示式的結果。

10.下表引用、函式呼叫和結構體成員

10.1 [ ]下表引用操作符  運算元:乙個陣列名+乙個索引值 int arr[10]; //建立陣列 arr[9]=10;//實用下標引用操作符 ,[ ]的運算元是arr和9

10.2 ()函式呼叫操作符 接受乙個或多個運算元:第乙個運算元是函式名,剩餘的運算元就是傳遞給函式的引數。

10.3 訪問乙個結構的成員:①.  結構體.成員名  ②->  結構體指標->成員名

11.表示式求值

表示式求值的順序一部分是由運算元的優先順序和結合性決定。

同樣,有些表示式的運算元在求值的過程中可能需要轉換為其他型別。

整型提公升(難點重點):①表示式的整型運算要在cpu的相應運算器件內執行,cpu內整型運算器(alu)的運算元的位元組長度一般就是int的位元組長度,同時也是cpu的通用暫存器的長度。所以,表示式中各種長度可能小於int長度的整型值,都必須先轉換為int或unsigned int,然後才能送入cpu 去執行運算。

②如何進行整型提公升?整型提公升時,先看自身的型別 看有無符號位 有符號位高位補符號位  無符號位高位補0

12.算數轉換 :如果某個操作符的各個運算元屬於不同的型別,那麼除非其中乙個運算元轉換為另乙個運算元的型別,否則操作就無法進行。下面的層次體系稱為尋常算術轉換

long double,double,float,unsigned long int,long int,unsigned int  , int 如果某個運算元的型別在上面這個列表中排名較低,那麼首先要轉換為另外乙個運算元的型別後執行運算  

13.操作符的屬性 複雜表示式的求值有三個影響的因素。①操作符的優先順序②操作符的結合性③是否控制求值順序

兩個相鄰的操作符先執行哪個?取決於他們的優先順序。如果兩者的優先順序相同,取決於它們的結合性。

c 操作符使用

乙個下午的時間總算弄清楚c 各個操作符的使用方法,這個地方一直弄不清楚,今天終於有空把它弄清晰了 一 位操作符 1.操作符 按位與 運算子 是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 否則為0。參與運算的數以補碼方式出現。例如 9 5 可寫算式...

php 使用操作符

算術操作符 字串操作符 賦值操作符 1.比較操作符 比較運算子 例子名稱 結果 a b 等於true,如果型別轉換後 a 等於 b a b 全等true,如果 a 等於 b 並且它們的型別也相同。a b 不等true,如果型別轉換後 a 不等於 b a b 不等true,如果型別轉換後 a 不等於 ...

指標用操作符 和 ,引用使用操作符

指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用引用呢?首先,要認識到在任何情況下都不能用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但是...