運算子
邏輯運算
xor 的真值表
a b a xor b
0 0 0
0 1 1
1 0 1
1 1 0
nand 的真值表
a b a nand b
0 0 1
0 1 1
1 0 1
1 1 0
nor 的真值表
a b a nor b
0 0 1
0 1 0
1 0 0
1 1 0
進製間的轉換
二轉十1011=1*2(3)+0*2(2)+1*2(1)+1*2(0)
小數.1011=1*2(-1)+0*2(-2)+1*2(-3)+1*2(-4)
整數的加減運算
8位表示正負數,最高位為符號位,0表示正,1表示負(-127~127)
邏輯:符號位相同,後7位相加,符號位不變,超出為溢位
符號位不同,後7位大者減小者,符號位和大數相同
浮點數表示形式: 10*10(0)=0.1*10(2)=(01000)*2(0)=(0.01000)*2(5)
浮點數的格式為:
sign(1bit) exponent(5bit) significand(8bit)
故:0 00101( 5次冪) 01000 000
運算子位運算
移位運算
左移一位相當於*2,如果左移位數大於32,結果為undefine
右移一位相當於/2,小數部分截掉,當運算元為有符號時:
如果是正數,高位移入0,
如果是負數,x86平台最高位移入1,保持符
號位掩碼
0x0000ff00 對32位整數的8~15位進行操作
取出示例**:
unsigned int a,b,mask=0x0000ff00;
a=0x12345678;
b=(a&mask)>>8;
清零unsigned int a,b,mask=0x0000ff00;
a=0x12345678;
b=a&~mask;
置1unsigned int a,b,mask=0x0000ff00;
a=0x12345678;
b=a|mask;
異或運算
異或自已為0
和0作異或值不變
奇偶校驗
交換兩個數的值:a=a^b; b=b^a; a=a^b;
復合運算子
+= -= %= <<= >>= &= !=
三目條件運算子:
表示式1?表示式2:表示式3;
逗號運算子
sizeof運算符號
示例**:
int nums[10];
printf("%d\n",sizeof nums/siaeof a[0]);
typedef型別宣告:
用於給乙個型別取乙個新名字
示例**:
typedef int int_array[12];
int_array a;
相當於:int a[12];
C語言學習(九)陣列
一維陣列 1.一維陣列的定義格式為 型別說明符 陣列名 常量表示式 例如 int a 10 它表示定義了乙個整形陣列,陣列名為a,有10個整形元素。2.在定義陣列時,需要指定陣列中元素的個數,方括弧中的常量表示式用來表示元素的個數,即陣列長度。3.常量表示式中可以包括常量和符號常量,但不能包含變數。...
c語言學習日記(九)
上三角矩陣指主對角線以下的元素都為0的矩陣 主對角線為從矩陣的左上角至右下角的連線。本題要求編寫程式,判斷乙個給定的方陣是否上三角矩陣。輸入格式 輸入第一行給出乙個正整數t,為待測矩陣的個數。接下來給出t個矩陣的資訊 每個矩陣資訊的第一行給出乙個不超過10的正整數n。隨後n行,每行給出n個整數,其間...
組合語言學習筆記 九
1.可以修改ip,或者同時修改cs和ip的指令統稱為轉移指令。2.8086cpu的轉移行為有以下幾類 只修改ip時,稱為段內轉移,比如 jmp ax。段內轉移又分為 短轉移和近轉移 短轉移ip的修改範圍為 128 127 近轉移ip的修改範圍為 32768 32767 同時修改cs和ip時,稱為段間...