c語言學習筆記九

2021-09-01 10:46:50 字數 1551 閱讀 7905

運算子

邏輯運算

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時,稱為段間...