整數與整數之間
一、長度相等(在記憶體中儲存的位數相等)的兩個不同的型別的資料之間的賦值
在計算機中的儲存內容不變,只是資料按照不同的編碼格式來解析。
二、長賦值給短(短 = 長)
擷取低位,然後按照短整數的資料型別解析。
三、短賦值給長(長 = 短)
其中,短轉長又分為三種情況:
1. 兩個資料都是無符號的資料,短整數直接高位補0。
2. 兩個資料都是有符號的資料,短整數進行符號位擴充套件。
3. 兩個數乙個是有符號數,乙個數是無符號數,那麼先將短整數進行位數擴充套件,過程中保持數值不變,然後按照長整數的資料型別解析資料。
四、整數與浮點之間
1.浮點數轉整數
擷取整數部分,賦值給a
int a = 3.54
a 的值為 3
2.整數轉浮點數
小數部分為0,整數部分的值與其整數的值相等。
float b = 3;
b 的值是 3.0
float 與 double 之間
double 轉 float 將會丟失精度。
float 轉 double 值不變。
注:
整數在計算機中都是以補碼的形式儲存的。
C語言中不同型別變數的解讀
c語言中變數分為四類,分別是 四大類,所有變數必須先說明 定義 後使用。自動變數 區域性變數 區域性變數 在乙個函式開頭或段開頭處說明的變數,它有幾個特徵 include void print number int x,int y printf d n sum void main void 外部變數...
不同型別陣列之間的資料拷貝
工作中,需要將乙個float型別的陣列整體copy到乙個double型別的陣列中。很顯然,memcpy是不行的,因為float和double占用的位元組數不一樣。本來打算用for迴圈乙個乙個元素賦值,但這方法肯定特慢,效率差。不死心,查一查,原來std copy能夠搞定這個問題。舉例說明 doubl...
C語言中不同型別的運算和比較問題
今天寫 的時候遇到這樣一種情況 首先我能獲取到乙個配置的電壓資訊,型別是uint8 然後我要用當前的實際電壓與配置的電壓進行比較,問題是 我獲取到的配置電壓單位是0.1v,當前實際電壓單位是0.01v 所以工需要將我獲取到的配置電壓 乘以 10,再和實際電壓進行比較,我是這樣寫的 if curren...