資料在底層的儲存模式

2021-09-28 11:51:03 字數 1594 閱讀 1839

面試題:設計程式判斷大小端

這裡可以有兩種方式:

1、寫乙個函式通過資料型別

int main()

2、通過聯合體(聯合體種的變數共用一塊記憶體)

union un

int main()

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-3cuoytpg-1570687707359)(en-resource://database/516:1)]

1、資料型別:對變數的劃分

int main()

做法:

2、幾個重要的例子

int main()

return 0;

}

這裡會死迴圈,i是乙個無符號的數,當小於0的時候無符號列印,i的值又會變成這種型別的最大值,因此還會進入迴圈。

unsigned char i;

int main()

return 0;

}

int main()

printf("%d",strlen(a));//這裡注意strlen在遇到\0也就是0的時候停止

return 0;

}

2、浮點數在記憶體中的儲存

754標準(只能精確儲存6位,且是乙個範圍)

float型別 4個位元組儲存,遵循ieee-754格式標準:乙個浮點數有兩部分組成:底數m和指數e

符號位(s):0、1

底數部分(m):使用二進位制數來表示浮點數的實際值

指數部分(e): 占用8bit的二進位制數,可表示數值範圍為從-126到128

(因為指數可正可負,所以ieee規定,此處算出的次方必須減去127才是真正的指數。)

科學計數法:

格式 :

seee eeee emmm mmmm mmmm mmmm mmmm mmmm

s表示浮點數正負,e指數加上127後的值得二進位制資料,m為底數

eg: 17.725 在記憶體中得儲存

首先要把17.625換算成二進位制: 10001.101(注意整數部分和小數部分得轉換規則)因為右移動了四位,這時候得底數和指數再將10001.101右移,直到小數點前只剩一位1.0001101*2^4

底數:因為小數點前必須為1,所以ieee規定只記錄小數點後得就好。所以此處得底數:0001101

指數:實際為4,必須加上127**出得時候,減去127),所以為131,即 10000011,符號部分是整數,所以是0

綜上,17.625儲存格式為: 01000001 10001101 000000000 000000000

注意:

這一篇後續還會完善。

C語言基礎 整數資料在底層的儲存

整數分為三種 正整數負整數 零此三種中,在計算機的儲存中,可以將0和正整數歸為一類 計算機在底層儲存這些整數的時候,儲存的是資料的二進位制數的補碼,由0和1組成,對於第一類 正整數和0 來講,只要符合二進位制規則即可儲存,那麼對於負數來講,無法直接以01 的形式寫入,這時候就出現了一種特定的儲存方法...

資料在底層的傳播套接字

分析資料在協議棧底層的流程 當網絡卡收到資料後,產生硬體中斷,由中斷處理程式 一般為網絡卡驅動程式所註冊 從網絡卡內讀取資料,並封裝稱sk buff 結構,然後把這些資料傳遞給函式netif rx 進行進一步的處理。函式netif rx 根據當前接收佇列的擁擠情況,選擇丟棄還是接收,如果是接收,則將...

在HTML儲存資料的方法

html5提供了兩種在客戶端儲存資料的新方法 1 localstorage 沒有時間限制的資料儲存 2 sessionstorage 針對乙個session的資料儲存 localstorage屬性允許你訪問乙個storage物件。localstorage與 sessionstorage相似,不同之處...