+、-、*、/運算的兩個數中有乙個數為float或double型,結果為double型,因為系統將所有的float型資料轉換為double型別資料再進行計算。
如果int型與float或double型資料進行計算,先把int型和float型資料轉換為double資料再進行計算,結果為double型。
字元(char)型資料與整形資料計算,即是把char型資料的ascll**與整形資料進行計算。如果字元型與浮點型(因為c語言中儲存小數是用科學計算法儲存,小數點位置可以移動,所以稱小數為浮點型別)資料進行運算,則將字元的acsll**轉換為double型資料,然後進行計算。
總結:1. 計算資料中有double或float型別,那麼計算結果為double型別
2. 低資料型別(排序為:char,short,int,long,float,double)與高資料型別計算時先同一轉換為高資料型別再進行計算,結果為高資料型別。
C語言中不同型別資料之間的賦值
整數與整數之間 一 長度相等 在記憶體中儲存的位數相等 的兩個不同的型別的資料之間的賦值 在計算機中的儲存內容不變,只是資料按照不同的編碼格式來解析。二 長賦值給短 短 長 擷取低位,然後按照短整數的資料型別解析。三 短賦值給長 長 短 其中,短轉長又分為三種情況 1.兩個資料都是無符號的資料,短整...
C語言中不同型別的運算和比較問題
今天寫 的時候遇到這樣一種情況 首先我能獲取到乙個配置的電壓資訊,型別是uint8 然後我要用當前的實際電壓與配置的電壓進行比較,問題是 我獲取到的配置電壓單位是0.1v,當前實際電壓單位是0.01v 所以工需要將我獲取到的配置電壓 乘以 10,再和實際電壓進行比較,我是這樣寫的 if curren...
不同型別陣列之間的資料拷貝
工作中,需要將乙個float型別的陣列整體copy到乙個double型別的陣列中。很顯然,memcpy是不行的,因為float和double占用的位元組數不一樣。本來打算用for迴圈乙個乙個元素賦值,但這方法肯定特慢,效率差。不死心,查一查,原來std copy能夠搞定這個問題。舉例說明 doubl...