久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3082|回復: 19
打印 上一主題 下一主題
收起左側

c語言如何用宏取一個小數的分子?

[復制鏈接]
跳轉到指定樓層
樓主
ID:1043747 發表于 2022-11-29 11:24 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
多謝大家幫助

1669692157193..jpg (677.33 KB, 下載次數: 85)

1669692157193..jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2022-11-29 13:25 | 只看該作者
這不單是c語言和宏的問題
更是數學的分數約簡問題(即最大公因數)
回復

使用道具 舉報

板凳
ID:401564 發表于 2022-11-29 15:35 | 只看該作者
取一個小數的分子?這個時候分母在干嘛?
這是什么意思?
是我文化太低還是問題太深奧?
回復

使用道具 舉報

地板
ID:384109 發表于 2022-11-29 16:39 | 只看該作者
應該是改變fraction的寫法
回復

使用道具 舉報

5#
ID:824490 發表于 2022-11-29 16:57 | 只看該作者
宏并不能節省空間,而一些復雜的功能可以用函數來做,所以你為什么不做一個你想要的功能的函數呢?
回復

使用道具 舉報

6#
ID:1043747 發表于 2022-11-29 18:38 來自觸屏版 | 只看該作者
名字不是重點 發表于 2022-11-29 16:57
宏并不能節省空間,而一些復雜的功能可以用函數來做,所以你為什么不做一個你想要的功能的函數呢?

因為,該值編譯時可確定,我不想有運行開銷
回復

使用道具 舉報

7#
ID:1043747 發表于 2022-11-29 18:41 來自觸屏版 | 只看該作者
Y_G_G 發表于 2022-11-29 15:35
取一個小數的分子?這個時候分母在干嘛?
這是什么意思?
是我文化太低還是問題太深奧?

比如fraction定義為0.5,那么numerator則為1(1/2的分子)
回復

使用道具 舉報

8#
ID:384109 發表于 2022-11-29 20:22 | 只看該作者
為什么不能numerator = 1,然后fraction = numerator / 2呢
回復

使用道具 舉報

9#
ID:824490 發表于 2022-11-29 21:00 | 只看該作者
censv 發表于 2022-11-29 18:38
因為,該值編譯時可確定,我不想有運行開銷

既然該值編譯時可確定,為什么不直接定義?還要想著如何計算、如何列個公式不麻煩?
如:
//#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
需要哪個frq,把其它的注釋掉就OK了。
回復

使用道具 舉報

10#
ID:624769 發表于 2022-11-29 21:10 | 只看該作者
censv 發表于 2022-11-29 18:41
比如fraction定義為0.5,那么numerator則為1(1/2的分子)

那么numerator 永遠是1, 無論你 fraction 是多少。
即便,fraction = 2,  numerator 也可以 =1, (1/0.5 的分子)
回復

使用道具 舉報

11#
ID:883242 發表于 2022-11-29 21:14 | 只看該作者
樓主的意思是12/11.0592化簡為625/576這兩個沒有公倍數的數值的比值。但是公約數公倍數本身就是純粹的整數的概念,如果輸入是浮點數,那么就是無解的。樓主可以手擼出答案,但是在計算機上面不可能復現,因為11.0592在計算機內部浮點格式中,總是有誤差的,不可能準確,自然無論如何也不可能算出結果。

題目本身就是大錯特錯,大家散了吧。
回復

使用道具 舉報

12#
ID:1043747 發表于 2022-11-29 21:29 來自觸屏版 | 只看該作者
人中狼 發表于 2022-11-29 20:22
為什么不能numerator = 1,然后fraction = numerator / 2呢

因為numerator的值取決于fraction
回復

使用道具 舉報

13#
ID:1043747 發表于 2022-11-29 21:42 來自觸屏版 | 只看該作者
Hephaestus 發表于 2022-11-29 21:14
樓主的意思是12/11.0592化簡為625/576這兩個沒有公倍數的數值的比值。但是公約數公倍數本身就是純粹的整數 ...

多謝幫助,給我了個確定的答案
回復

使用道具 舉報

14#
ID:883242 發表于 2022-11-29 22:41 | 只看該作者
censv 發表于 2022-11-29 21:42
多謝幫助,給我了個確定的答案

你的這個數本身就沒有意義,12000000/11059200去掉公約數,化簡成兩個互質數比值625/576,那么625的物理意義是什么?如果這個問題說不清,那么625這個數據就是毫無意義的。
回復

使用道具 舉報

15#
ID:77589 發表于 2022-11-30 09:42 | 只看該作者
在C語言中,無論是整形數還是浮點數,都不可以能以分號的形式保存,即使你寫成a/b的形式,編譯器都會給你計算出具體的結果的。所以你的想法,應該是不能實現的。只能通過其他方法來實現。
回復

使用道具 舉報

16#
ID:384109 發表于 2022-11-30 09:53 | 只看該作者
樓主沒明白自己想要得到什么,也沒明白#define是什么用法
回復

使用道具 舉報

17#
ID:1043747 發表于 2022-11-30 09:55 來自觸屏版 | 只看該作者
Hephaestus 發表于 2022-11-29 22:41
你的這個數本身就沒有意義,12000000/11059200去掉公約數,化簡成兩個互質數比值625/576,那么625的物理 ...

625是在11.0592MHz下精確的最小整數時間(單位us)
回復

使用道具 舉報

18#
ID:161164 發表于 2022-11-30 11:08 | 只看該作者
censv 發表于 2022-11-30 09:55
625是在11.0592MHz下精確的最小整數時間(單位us)

那么numerator只能用函數來算
  1. long Find_numerator(long dat)
  2. {
  3. char PP[3] = {2,3,5},i,j;
  4. long Mhz12 = 12000000;
  5. for(i=0;i<3;i++)
  6. {
  7.      j=100;
  8.      while(j--)
  9.      {
  10.         if(dat%PP[i]==0 && Mhz12%PP[i]==0)
  11.         {
  12.             dat/=PP[i];
  13.             Mhz12/=PP[i];
  14.         }else
  15.         {
  16.             break;
  17.         }
  18.      }
  19. }
  20. return dat;
  21. }
復制代碼



回復

使用道具 舉報

19#
ID:401564 發表于 2022-11-30 19:34 | 只看該作者
censv 發表于 2022-11-29 18:41
比如fraction定義為0.5,那么numerator則為1(1/2的分子)

你還不如說你要干嘛好點
不要想當然的認為一個問題可以“這樣”解決,然后就問要怎么樣都能達到“這樣”的效果
0.1 0.2 0.3 0.4 0.5
哪個分子不是1,你不管分母,只管分子,這有什么意義呀?
回復

使用道具 舉報

20#
ID:1043747 發表于 2022-11-30 22:17 來自觸屏版 | 只看該作者
lkc8210 發表于 2022-11-30 11:08
那么numerator只能用函數來算

多謝你的幫助,開心每一天
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国户精品久久久久久久久久久不卡 | 午夜激情在线视频 | 91麻豆精品国产91久久久更新资源速度超快 | 日韩中文字幕一区 | 久久男女视频 | 久久亚洲综合 | 欧美精品久久久久 | 中文字幕高清av | 日本午夜精品一区二区三区 | www.97zyz.com| 国产欧美日韩一区二区三区在线 | 一级欧美一级日韩片 | 亚洲视频 欧美视频 | 国产午夜三级一区二区三 | 黄视频在线网站 | 在线欧美视频 | 99精品国产成人一区二区 | 一区二区三区国产精品 | 日韩精品一区二区三区第95 | 精品一区在线 | 久久性av | 久草在线 | 黄免费观看视频 | 成人av大全| 91视频大全| 欧美 日韩 亚洲91麻豆精品 | 伊人精品久久久久77777 | 国产精品久久亚洲 | 国产一区久久精品 | 国产精品视频一区二区三区四蜜臂 | 久久久久久久久久久久91 | 在线a视频 | 欧美精品久久久久久 | 99国产精品久久久久老师 | 蜜桃在线一区二区三区 | 国产精品久久久久久久久 | 亚洲国产成人精品女人久久久 | 国产成人精品高清久久 | 日韩手机在线看片 | 91精品国产91久久久久游泳池 | 欧美日韩中文国产一区发布 |