面試題:設計程式判斷大小端
這裡可以有兩種方式:
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相似,不同之處...