數據的儲存(一)(整形)(零基礎學習C語言)

本章重點
數據的儲存(一)(整形)(零基礎學習C語言)
1.數據類型的詳細介紹
數據的儲存(一)(整形)(零基礎學習C語言)
內置類型就是C語言本身有的類型
數據的儲存(一)(整形)(零基礎學習C語言)
根據存儲形式具體分爲:
char分爲整形
是由於char類型的變量在計算機中存儲的是ASCII碼值
ASCII碼值是int類型的
空間大小
存儲類型
數據的儲存(一)(整形)(零基礎學習C語言)
如:
打開內存後發現
整形和浮點型的存儲形式不同
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
unsigned(無符號)默認爲正數,最高位不看作符號位,看作有效位(數字的範圍會更大些)
signed(有符號)有正有負
計算機存儲的是二進制的補碼
最高位爲符號位(0爲正,1爲負)
通常默認signed不寫
即:signed int 寫爲int
這幾種寫法相同
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
去掉數組名剩下的就是數組類型
數據的儲存(一)(整形)(零基礎學習C語言)
指針類型就是 相應類型加顆(*)
數據的儲存(一)(整形)(零基礎學習C語言)
C語言中未規定,()傳不傳參數均可以
數據的儲存(一)(整形)(零基礎學習C語言)
若是肯定要無參
能夠:
數據的儲存(一)(整形)(零基礎學習C語言)
可是依舊跑的過去,不會報錯,可是會報警告
2.整形在內存中的存儲(原反補碼)
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
注意:是有符號整數
最高位爲符號位
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
原碼,將二進制的最高位加上(0,1)對應的符號位便可
數據的儲存(一)(整形)(零基礎學習C語言)
反碼:
正數的反碼與原碼相同
負數的反碼是符號位不變,其餘位按位取反便可
數據的儲存(一)(整形)(零基礎學習C語言)
補碼:
正數的補碼與原碼相同
負數的補碼是在反碼的基礎上加1便可
數據的儲存(一)(整形)(零基礎學習C語言)
例如:
內存中向咱們展現時是以16進制展現的
4個二進制數轉化爲1個16進制位
數據的儲存(一)(整形)(零基礎學習C語言)
總結:
正數的,原碼,反碼,補碼都相同
計算機中存放的是二進制的補碼(大端存儲仍是小端存儲得看編譯器)
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
3.大小端字節序介紹及判斷
a空間中存儲的內容
數據的儲存(一)(整形)(零基礎學習C語言)
b空間中儲存的內容
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
大端存儲:數據的低位放在內存高地址處
小端存儲:數據的高位放在內存低地址處
數據的儲存(一)(整形)(零基礎學習C語言)
都是相對而言的
數據的儲存(一)(整形)(零基礎學習C語言)
描述的是字節存放的順序而不是二進制位的順序
1個字節8個bit2個16進制位
由於內存是以基本單位字節劃分的
數據的儲存(一)(整形)(零基礎學習C語言)
數據的儲存(一)(整形)(零基礎學習C語言)
例:
數據的儲存(一)(整形)(零基礎學習C語言)
寫一個程序判斷數據是大端存儲仍是小端存儲
數據的儲存(一)(整形)(零基礎學習C語言)
思路:
(描述的是字節存放的順序而不是二進制位的順序)
設置一個變量
將它賦值爲1
看他的第一個字節是1仍是0
若是是1則爲小端存儲
若是是0則爲大端存儲
數據的儲存(一)(整形)(零基礎學習C語言)
利用指針取出第一個字節
數據的儲存(一)(整形)(零基礎學習C語言)
char*訪問一個字節
數據的儲存(一)(整形)(零基礎學習C語言)
代碼優化:
數據的儲存(一)(整形)(零基礎學習C語言)
函數簡化:
數據的儲存(一)(整形)(零基礎學習C語言)
函數簡化:
數據的儲存(一)(整形)(零基礎學習C語言)
練習一:
記住-1的二進制補碼爲全1
1.(二進制補碼)先轉化爲整形大小
2.-再截斷爲char
3.-最後整形提高獲得補碼再進行轉換
(若是是有符號的,整形提高時前面補符號位)
數據的儲存(一)(整形)(零基礎學習C語言)
練習二
數據的儲存(一)(整形)(零基礎學習C語言)
char的不一樣類型的範圍分析
數據的儲存(一)(整形)(零基礎學習C語言)
注意有符號類型的char的範圍是-128---->127
127+1=-128
數據的儲存(一)(整形)(零基礎學習C語言)
練習三:
兩個數的結果都是-128
都是-1
數據的儲存(一)(整形)(零基礎學習C語言)
練習四:
將無符號數也轉化爲二進制的補碼(爲正數,原反補碼相同)
有符號數也轉化爲二進制的補碼
補碼相加,進位的話捨去
最後按要求格式化爲有符號整數
數據的儲存(一)(整形)(零基礎學習C語言)
分析:
數據的儲存(一)(整形)(零基礎學習C語言)
例題五:
數據的儲存(一)(整形)(零基礎學習C語言)
死循環了
由於無符號數必定大於0
例題六:
數據的儲存(一)(整形)(零基礎學習C語言)
strlen計算的是\0前的數字便是0前有多少個數字
有符號類型的char的範圍是-128---->127
數據的儲存(一)(整形)(零基礎學習C語言)
例題七:
數據的儲存(一)(整形)(零基礎學習C語言)
死循環
unsigned char的範圍是0---->255
條件恆成立
死循環數組

相關文章
相關標籤/搜索