熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
lkc8210 發(fā)表于 2022-11-30 11:08 多謝你的幫助,開心每一天 |
censv 發(fā)表于 2022-11-29 18:41 你還不如說(shuō)你要干嘛好點(diǎn) 不要想當(dāng)然的認(rèn)為一個(gè)問(wèn)題可以“這樣”解決,然后就問(wèn)要怎么樣都能達(dá)到“這樣”的效果 0.1 0.2 0.3 0.4 0.5 哪個(gè)分子不是1,你不管分母,只管分子,這有什么意義呀? |
censv 發(fā)表于 2022-11-30 09:55 那么numerator只能用函數(shù)來(lái)算
|
Hephaestus 發(fā)表于 2022-11-29 22:41 625是在11.0592MHz下精確的最小整數(shù)時(shí)間(單位us) |
樓主沒(méi)明白自己想要得到什么,也沒(méi)明白#define是什么用法 |
在C語(yǔ)言中,無(wú)論是整形數(shù)還是浮點(diǎn)數(shù),都不可以能以分號(hào)的形式保存,即使你寫成a/b的形式,編譯器都會(huì)給你計(jì)算出具體的結(jié)果的。所以你的想法,應(yīng)該是不能實(shí)現(xiàn)的。只能通過(guò)其他方法來(lái)實(shí)現(xiàn)。 |
censv 發(fā)表于 2022-11-29 21:42 你的這個(gè)數(shù)本身就沒(méi)有意義,12000000/11059200去掉公約數(shù),化簡(jiǎn)成兩個(gè)互質(zhì)數(shù)比值625/576,那么625的物理意義是什么?如果這個(gè)問(wèn)題說(shuō)不清,那么625這個(gè)數(shù)據(jù)就是毫無(wú)意義的。 |
Hephaestus 發(fā)表于 2022-11-29 21:14 多謝幫助,給我了個(gè)確定的答案 |
人中狼 發(fā)表于 2022-11-29 20:22 因?yàn)閚umerator的值取決于fraction |
樓主的意思是12/11.0592化簡(jiǎn)為625/576這兩個(gè)沒(méi)有公倍數(shù)的數(shù)值的比值。但是公約數(shù)公倍數(shù)本身就是純粹的整數(shù)的概念,如果輸入是浮點(diǎn)數(shù),那么就是無(wú)解的。樓主可以手?jǐn)]出答案,但是在計(jì)算機(jī)上面不可能復(fù)現(xiàn),因?yàn)?1.0592在計(jì)算機(jī)內(nèi)部浮點(diǎn)格式中,總是有誤差的,不可能準(zhǔn)確,自然無(wú)論如何也不可能算出結(jié)果。 題目本身就是大錯(cuò)特錯(cuò),大家散了吧。 |
censv 發(fā)表于 2022-11-29 18:41 那么numerator 永遠(yuǎn)是1, 無(wú)論你 fraction 是多少。 即便,fraction = 2, numerator 也可以 =1, (1/0.5 的分子) |
censv 發(fā)表于 2022-11-29 18:38 既然該值編譯時(shí)可確定,為什么不直接定義?還要想著如何計(jì)算、如何列個(gè)公式不麻煩? 如: //#define frq 11592000 //#define frq 12000000 #define frq 24000000 #if (frq ==11592000) #define circle 0 #endif #if (frq ==12000000) #define circle 1 #endif #if (frq ==24000000) #define circle 2 #endif 需要哪個(gè)frq,把其它的注釋掉就OK了。 |
為什么不能numerator = 1,然后fraction = numerator / 2呢![]() |
Y_G_G 發(fā)表于 2022-11-29 15:35 比如fraction定義為0.5,那么numerator則為1(1/2的分子) |
名字不是重點(diǎn) 發(fā)表于 2022-11-29 16:57 因?yàn),該值編譯時(shí)可確定,我不想有運(yùn)行開銷 |
宏并不能節(jié)省空間,而一些復(fù)雜的功能可以用函數(shù)來(lái)做,所以你為什么不做一個(gè)你想要的功能的函數(shù)呢? |
應(yīng)該是改變fraction的寫法 |
取一個(gè)小數(shù)的分子?這個(gè)時(shí)候分母在干嘛? 這是什么意思? 是我文化太低還是問(wèn)題太深?yuàn)W? |
這不單是c語(yǔ)言和宏的問(wèn)題 更是數(shù)學(xué)的分?jǐn)?shù)約簡(jiǎn)問(wèn)題(即最大公因數(shù)) |
Powered by 單片機(jī)教程網(wǎng)