C語言學習筆記 第三天

2021-09-25 15:00:22 字數 920 閱讀 3016

資料分為原碼、反碼、補碼,記憶體中儲存的是資料的補碼。

原碼:資料直接轉換成二進位制(無論正負)

反碼:正數的反碼就是它的原碼

負數的反碼:符號位不變,其它位按位取反

補碼:正數:原碼就是補碼

負數:反碼+1

**段(text):儲存的是**所編譯成的二進位制指令、字串字面值、常量,具有唯讀屬性,一旦修改就會發生段錯誤

全域性資料段(data):儲存的是初始化過的全域性變數和靜態變數

bss段(靜態資料段) :儲存的是未初始化過的全域性變數和靜態變數,程式執行前會清理為0

棧(stack):儲存區域性變數、塊變數,大小有限,安全。由作業系統管理,以函式為單位使用(函式呼叫結束之後自動釋放)

堆(heap):一般由程式設計師手動管理(告訴系統去對映),效果還是手動管理更好,與指標配合使用,足夠大,使用不方便,釋放的時間受控制,但不安全,容易產生記憶體碎片、記憶體洩露

為什麼需要二進位制:因為現在的計算機由大規模的積體電路構成,計算單元只能識別高低電流,因此只能使用二進位制

為什麼需要八進位制:是為了方便記錄二進位制,由於歷史原因,八進位制資料還在使用。

為什麼需要十六進製制:相當於公升級版的八進位制,由於計算機的高速發展,八進位制已經無法滿足需要。

十進位制轉換成二進位制:

求餘:把十進位制資料不停的用2求餘,逆序記錄求餘的結果。

求189的二進位制:

189%2=1

94%2=0

47%2=1

23%2=1

11%2=1

5%2=1

2%2=0

1%2=1

10111101

二進位制轉換成十進位制:以0b開頭的是二進位制

二進位制轉換成八進位制:三位二進位制轉換成一位八進位制,以0開頭的是8進製

二進位制轉換成十六進製制:四位二進位制轉換成一位十六進製制,以0x開頭的是16進製制

學習C語言第三天

函式的劃分 佔位符判斷結構要求指定乙個或多個要評估或測試的條件,以及條件為真時要執行的語句 必需的 和條件為假時要執行的語句 可選的 c 語言把任何非零和非空的值假定為 true,把零或 null 假定為 false。判斷語句有if語句 if else語句 巢狀if語句 switch語句 巢狀swi...

學習C語言的第三天

二進位制,十進位制轉換 小數部分十進位制轉成二進位制要用乘法,乘2取整 0.625 2 1.25 取整1 0.25 2 0.5 取整0 0.5 2 1 取整1 0.625 10 0.101 2 0.25 10 0.01 2 0.5 10 0.1 2 sizeof是個單目運算子,不是乙個函式,用來計算...

北京大學C語言學習第三天

字串1 所佔位元組數為 字元數加1 結尾有個 0,字串長度不包括 0。字串3種形式 1.雙引號括起來的 2.存放於陣列中的,以 0結尾 3.string物件 字串常量 空串 佔據乙個位元組空間,存放 0 包含 0 字元的一維陣列,就是乙個字串,存放的字串由 0 前的字元組成。char 陣列存放字串,...