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