float和int相互轉換

2021-06-23 08:57:31 字數 2025 閱讀 1321

【利用unsigned char* 指標,在任意型別之間轉換】

直接強制將float強制轉換成int;最後一位丟失精度則 +0.5處理

**

序列通訊是以位元組為單位進行傳送的,對於浮點數和整型數都需要進行轉換位元組陣列才能進行通訊。

mcu和pc的浮點數都是基於ieee754格式的。有4位元組(float)、8位元組(double)、10位元組(有一些不支援)。這裡以4位元組(float)浮點數為例。

轉化常見的方法有:

一、強制指標型別轉換。

//  轉換int資料到位元組陣列 

unsigned int intvariable,i;

unsigned char chararray[2];

(unsigned char) * pdata = ((unsigned char)*)&intvariable;  //進行指標的強制轉換 

for(i=0;i<2;i++)

// 轉換float資料到位元組陣列

unsigned int i;

float floatvariable;

unsigned char chararray[4];

(unsigned char) * pdata = ((unsigned char)*)&floatvariable;  //進行指標的強制轉換

for(i=0;i<4;i++)

//  轉換位元組陣列到int資料

unsigned int   intvariable="0";

unsigned char  i; 

void 

*pf; 

pf  =&intvariable; 

(unsigned char) * px = chararray; 

for(i=0;i<2;i++)

// 轉換位元組陣列到float資料

float 

floatvariable="0";

unsigned char  i; 

void 

*pf; 

pf  =&floatvariable; 

(unsigned char) * px = chararray; 

for(i=0;i<4;i++)

二、使用結構和聯合

定義結構和聯合如下

typedef union float_byte;

struct float_word;

float  value;

}float;

typedef union 

d1;unsigned int value;

} int;

使用方法:

對於浮點數:

float floatvariable;在程式中直接使用floatvariable.float_byte.high_byte,floatvariable.float_byte.mhigh_byte,

floatvariable.float_byte.mlow_byte,floatvariable.float_byte.low_byte這四個位元組就可以方便的進行轉換了。

例子:main()

;//四個位元組順序顛倒一下賦值

float x;

x.float_byte.high_byte=0x41;

x.float_byte.mhigh_byte=0xcc;

x.float_byte.mlow_byte=0xda;

x.float_byte.low_byte=0x80;

printf("%f/n",x.value);

}對於整數:

int intvariable;在程式中直接使用intvariable.value.high_byte,intvariable.value.low_byte就ok了。

三、對整型數可以用數**算的方法進行轉換

unsigned int intvariable;

unsigned char low_byte = intvariable%6;

unsigned char high_byte = intvariable/256;

java String 和 int 相互轉換

專案中經常會涉及到資料型別的不一致情況,這是就需要我們稍作處理。這篇文章介紹一下常見的兩種資料型別之間的轉換 string和int。例如 string a test int b 1 區別 int b 1 轉 string 方法一string b b 會產生兩個 string物件 方法二 string...

C string和int相互轉換

int轉string 使用std to string int 返回乙個轉換好的string字串 include string,std to string using namespace std intmain 使用c庫函式sprintf 可以轉化各種進製的數,但缺點是需要提前分配好char陣列 in...

Qt Qstring和float的相互轉換

在使用qt creator程式設計時,難免會用到將float型別轉換為qstring型別的時候下面是我所有的方法 1.將qstring型別轉化為float型別,很簡單 qstring data float num data.tofloat 即可很輕鬆的實現。2.但是如何將float型別轉化為qstr...