一.原始碼 反碼 補碼
1.正整數:原始碼 反碼 補碼都相同 第一位為符號位 1為正數 0為負數
1=0000 0000 0000 0000 0000 0000 0000 0001
2.負整數:
原始碼:1000 0000 0000 0000 0000 0000 0000 0001
反碼:符號位不變 其他位取反
1111 1111 1111 1111 1111 1111 1111 1110
補碼:反碼+1
1111 1111 1111 1111 1111 1111 1111 1111
3.在計算機中儲存的都是數字的補碼
4.運算1-1=1+-1
0000 0000 0000 0000 0000 0000 0000 0001
1111 1111 1111 1111 1111 1111 1111 1111
0000 0000 0000 0000 0000 0000 0000 0000
二.位運算 針對於二進位制的運算
1.& 按位與
對應二進位制位上 乙個為0全為0 全1為1
2.| 按位或
對應的二進位制位上乙個為1則為1 全0為0
3.^ 按位異或
對應二進位制位上 不同為1 相同為0
多個數異或遵循加法交換律
任何異或上0的數都為原來的數
相同的數異或為0
4.~ 按位取反
對應二進位制位上 0變1 1變0
5.>> 右移
m>>n 向右移動n位 移出的位刪除 補缺符號位(正0 負1)
快速計算乙個數除以2的n次方
6.<< 左移
m向左移動n位 移出來的直接刪除 移入的用0補齊
左移可能會改變符號位(正負)
使用場景:當數比較小時候,可以快速計算這個數乘以2的多少次方
7.左乘右除
三.變數
當定義變數的時候 首先會分配位址大的位元組
先定義變數的位址大於後定義變數的位址
變數的位址就是變數所儲存的空間
高位在高位元組上 地位在低位元組上
四.變數的修飾符
int 取值-2的31次方—2的31次方-1
short 取值-2的15次方—2的15次方-1
long 取值-2的31次方—2的31次方-1
long long 取值-2的31次方—2的31次方-1(64 位作業系統)
unsigned 無符號的數
unsigned int i; 取值範圍0-2的32次方-1 擴大一倍
五.字元型別
char 1個位元組 8位 0-255=256=2的8次方 ascii
六.其它
1.二進位制中最高位是1 這個數為 負數 為0 正數
2.二進位制中最後1位和奇數偶數有關 1位奇數 0為偶數
3.兩個數交換a b
a=a^b
b=a^b
a=a^b
4.%p是用來輸出位址的
5.0 代表8進製
0x 代表16進製制
無 代表10進製
6.char 1個位元組 8位 0-255=256=2的8次方
short 2個位元組
int 4個位元組
long 8個位元組
long long8個位元組(64 位作業系統)
乙個中文佔2個位元組
C 學習筆記( )
一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...
C 學習筆記
1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...
c 學習筆記
屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...