1樓:匿名使用者
可以定義float變數,進行float運算,比較耗時,一般採用放大到整數再運算。
2樓:匿名使用者
你可以在8位微控制器中定義float變數,一個float一般佔用4位元組,但是算術運算非常耗時間,不推薦使用float, 你可以使用整型的替代,比如把它放大到整數,長整型都行.
3樓:晨號號
你可以在8位微控制器中定義float變數/你可以使用整型的替代,比如把它放大到整數.
51微控制器處理16位數
4樓:匿名使用者
用匯編也可以處理,一樓的方法也是一種。
如果用c語言程式設計,無非就是把16位數分成兩部分,高8位與低8位,在運算的時候,按照我們一般的規則,從低位開始先乘後加。程式設計序細緻一點,問題不大。
5樓:匿名使用者
16位與16位的乘法和除法可能是32位了
unsigned long int ║4位元組║0~4294967295
你可以申明個
unsigned long int temp;
unsigned int k1,k2;
temp = k1*k2;
6樓:匿名使用者
1、整型數為16位。16位與16位相乘,則需定義長整型32位。除法則會取整處理。彙編實現時需要嚴謹處理。
2、簡單辦法是直接定義float型變數。注意float轉整型時不會四捨五入處理。+0.5處理。
具體要看看你的**。
7樓:匿名使用者
沒用過,好像通過移位的方法可以處理16位資料!
如何把一個很大的float資料提取出來。微控制器c51
8樓:ㄨ『正典』灝皴
我以前試過,51微控制器裡float和double儲存的只到小數點後6位,就像你說的5123456789在51微控制器裡是以5.123456e+9儲存的,也就是5123456000,後邊的都丟失了,所以簡單的程式應該是不可能算到你說的精度的。在32位微控制器上用long long 可以儲存差不多20位的整數,但是keil 51是不支援的。
你用這麼大的數幹什麼?不行就換一種方法吧。
9樓:匿名使用者
你這個5123456789是float型的? 那這數本身這已經丟失精度了, 你想一下,float和long同是4個位元組,為什麼float反而會比long表示的範圍大的多?
如果你這個數是字串,有別的處理方法。
浮點數對微控制器的速度影響很大麼?
10樓:申稅炸蛋
一般來說,普bai通微控制器都不du具備硬體浮點數運zhi算功能,也就是說單
dao片機實回際上是不直接支援
答浮點數的資料型別的資料的,浮點數主要通過編譯器來軟實現,浮點數精度和長度與編譯器有關,一般有用32位(單精度)和64位資料(雙精度)以科學計數法來表示一個浮點數,具體可參考浮點數表示方式。而普通微控制器通常是8位或16位,要將這32位資料處理為一個浮點數,中間的運算過程可想而知有多大。舉個列子吧,51微控制器用keil編譯器每增加一次浮點數運算**增加約有幾十到上百byte。
執行速度當然就慢下來了。
微控制器中的高8位和低8位是什麼意思
微控制器中使用的是4位十六進位制,例如a8e6h,其對應16位二進位制數值為1010,1000,1110,0110b顯而易見,高8位二進位制數值為1010,1000b低8位二進位制數值為1110,0110b 各自還原為2位十六進位制數分別是 高8位二進位制數值為a8h 低8位二進位制數值為e6h 不...
51微控制器的位定址區問題,MCS 51微控制器內部RAM中 單元為位定址區,其位地址範圍為
51單片bai機的位定址區問題書上寫著du位定址zhi區是20h 2fh,位地址00h 7fh,這不是超過dao這個位定址區了嘛內,這兩容個區域是什麼意思的?是這樣的,請你參考 51微控制器的位定址區問題書上寫著位定址區是20h 2fh 這裡的20h 2fh指的是片內ram低128位元組的 20h儲...
微控制器為什麼要分頻,微控制器為什麼要分頻
分頻就是將原有頻率除以分頻值得當頻率。簡單的來說就是以整數倍降低頻率。2分頻就是分頻前的頻率除以2 4分頻就是分頻前的頻率除以4 比如 如果晶振是12mhz的頻率,經過2分頻後送給微控制器做系統時鐘。那麼當前微控制器的系統時鐘則是12 2 6mhz。因為頻率太快了,所以分頻,例如定時器最大定時時間是...