1. 程式人生 > >c語言進階day_01

c語言進階day_01

arr 1.3 求反 分享圖片 asc 命令 ali 加減 命令行參數

數據類型

1.1內存

內存是線性的,按照字節為單位進行編址的(8b)

1.2補碼

技術分享圖片

補碼特點(互逆):

0的補碼是0

符號位同普通位一起參與運算

補碼可以使加減乘除都變成加法

8位數據(【-128,127】)表示的範圍是由補碼的編碼規則決定的

技術分享圖片

註意:-1(1111 1111) -128(1000 0000) 127(0111 1111)

1.3數據類型劃分

技術分享圖片

Char 0-128 對應ascii表

為什麽需要數據類型?

數據類型提供了申請內存單元的大小和訪問規則。

1.4類型轉換

1.4.1小數據賦給大數據

技術分享圖片

底端對齊/符號自動填充

正數擴充0/負數擴充1

技術分享圖片

1.4.2大數據賦給小數據

技術分享圖片

技術分享圖片

int a=127;

char b=a;

a=b=127;

int a=255;

char b=a;

a=255;b=ffffffff;

以上沒有發生數據丟失,僅僅截斷

技術分享圖片

技術分享圖片

1.4.3隱式轉化

整形提升:在32位機器中,所有低於32位的整形數據——>32位整形數據。

混合提升:

技術分享圖片

技術分享圖片

補碼+類型轉化+符號填充

Unsigned int填充0000

科普下補碼運算:

正數的補碼:與原碼相同

負數的補碼:符號位為1,其余位為該數絕對值的原碼按位取反;然後整個數加1。

補碼相減:

減法:
整數: [A-B]補 = [A]補 + [-B]補 (mod 2^(n+1))
小數: [A-B]補 = [A]補 + [-B]補(mod 2)

由[-B]補求解[B]補,或者由[B]補求[-B]補,都是連同符號位每位求反加一。

1.5內存管理

技術分享圖片

命令行參數

Int main(int argc(輸入數據個數)四個字節,char * argv[](輸入數據)12個字節)

技術分享圖片

1.6數組

數組清零:int array【10】={0};——>第一個數據設為0,後面自動初始化為0

當然數組以及二維數組,指針數組還有許多問題,希望大家可以多多交流!!!

下周學習,更c語言提高day_02 謝謝(*^_^*)

c語言進階day_01