www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 原創(chuàng) > 振南技術(shù)干貨集(風(fēng)云錄)
[導(dǎo)讀]很多人不能很好的使用和處理浮點(diǎn),其主要根源在于對(duì)它的表達(dá)與存儲(chǔ)方式不是很理解。最典型的例子就是經(jīng)常有人問(wèn)我:“如何使用串口來(lái)發(fā)送一個(gè)浮點(diǎn)數(shù)?”

關(guān)于浮點(diǎn)數(shù)的傳輸

很多人不能很好的使用和處理浮點(diǎn),其主要根源在于對(duì)它的表達(dá)與存儲(chǔ)方式不是很理解。最典型的例子就是經(jīng)常有人問(wèn)我:“如何使用串口來(lái)發(fā)送一個(gè)浮點(diǎn)數(shù)?”

我們知道C語(yǔ)言中有很多數(shù)據(jù)類(lèi)型,其中unsigned char、unsigned short、unsigned int、unsigned long我們稱(chēng)其為整型,顧名思義它們可以表達(dá)整型數(shù)。而能夠表達(dá)的數(shù)值范圍與數(shù)據(jù)類(lèi)型所占用的字節(jié)數(shù)有關(guān)。數(shù)值的表達(dá)方法比如簡(jiǎn)單,如下圖所示。

圖2.4 整型變量數(shù)值的計(jì)算方法

一個(gè)字節(jié)可以表達(dá)0~255,兩個(gè)字節(jié)(unsigned short)自然就可以表達(dá)0~65535,依次類(lèi)推。

當(dāng)需要把一個(gè)整型數(shù)值發(fā)送出去的時(shí)候,我們可以這樣作:

也就是將構(gòu)成整型的若干字節(jié)順序發(fā)送即可。當(dāng)然接收方一定要知道如何還原數(shù)據(jù),也就是說(shuō)它要知道自己接收到的若干字節(jié)拼在一起是什么類(lèi)型,這是由具體通信協(xié)議來(lái)保障的。

OK,關(guān)于整型比較容易理解。但是換成float,很多人就有些迷糊了。因?yàn)閒loat的數(shù)值表達(dá)方式有些復(fù)雜。有些人使用下面的方法來(lái)進(jìn)行浮點(diǎn)的發(fā)送。

很顯然這種方法非常的“業(yè)余”。還有人問(wèn)我:“浮點(diǎn)小數(shù)字前后的數(shù)字可以發(fā)送,但是小數(shù)點(diǎn)怎么發(fā)?”這赤裸裸的體現(xiàn)了他對(duì)浮點(diǎn)類(lèi)型的誤解。

不要被float數(shù)值的表象迷惑,它實(shí)質(zhì)上只不過(guò)是4個(gè)字節(jié)而已,如圖2.5所示。

圖2.5 浮點(diǎn)變量數(shù)值的計(jì)算方法

所以,正確的發(fā)送浮點(diǎn)數(shù)的方法是這樣的:

接收者將數(shù)據(jù)還原為浮點(diǎn):

其實(shí)我們應(yīng)該發(fā)現(xiàn)數(shù)據(jù)類(lèi)型的實(shí)質(zhì):不論是什么數(shù)據(jù)類(lèi)型,它的基本組成無(wú)非就是內(nèi)存中存儲(chǔ)的若干個(gè)字節(jié)。只是我們?nèi)藶榈馁x予了這些字節(jié)特定的編碼方式或數(shù)值表達(dá)??创┝诉@些,我們就認(rèn)識(shí)到了數(shù)據(jù)的本質(zhì)了,我們甚至可以直接操作數(shù)據(jù)。

聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀
關(guān)閉