C語言中不同型別資料之間的賦值

2021-10-08 06:34:58 字數 955 閱讀 6386

整數與整數之間

一、長度相等(在記憶體中儲存的位數相等)的兩個不同的型別的資料之間的賦值

在計算機中的儲存內容不變,只是資料按照不同的編碼格式來解析。
二、賦值給(短 = 長)

擷取低位,然後按照短整數的資料型別解析。
三、賦值給(長 = 短)

其中,短轉長又分為三種情況:

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...