[問題] 超大數的除法運算

看板C_and_CPP作者 (severus)時間11年前 (2013/10/19 13:04), 編輯推噓2(2014)
留言16則, 8人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 問題(Question): 請問要怎麼計算兩個超大數的除法,將結果存入double double = long long int / long long int 因為除法必需先轉型成double 例如: double = 2^50 / (double)2^60 但是這樣會造成分母部份overflow,請問要怎麼解呢?謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.170.134

10/19 21:13, , 1F
你是真的打 2^50嗎
10/19 21:13, 1F

10/19 21:17, , 2F
不是啊,只是一種表示法 但我知道一定大於double可表示的數
10/19 21:17, 2F

10/19 21:18, , 3F
原PO想表達的應該是2^60超過了double的15位有效數字?
10/19 21:18, 3F

10/19 21:18, , 4F
http://ideone.com/TyJxhe 那你的範例不夠大
10/19 21:18, 4F

10/19 21:19, , 5F
long long int的範圍沒超過double吧XD 精度可能不夠就是
10/19 21:19, 5F

10/19 21:19, , 6F
但這也不是溢位呀
10/19 21:19, 6F

10/19 21:21, , 7F
既然要存回double精度應該也不是問題吧
10/19 21:21, 7F

10/19 21:29, , 8F
好的我再試試看
10/19 21:29, 8F

10/19 21:40, , 9F
60 太小了, 等你要計算 2^100 以上等級的大數時再通知我
10/19 21:40, 9F

10/19 21:48, , 10F
double 不夠還有 long double 這東西可以用
10/19 21:48, 10F

10/19 22:09, , 11F
好的xdddd 謝謝
10/19 22:09, 11F

10/20 11:29, , 12F
好霸氣lol
10/20 11:29, 12F

10/20 16:07, , 13F
vc 的 long double 和 double , 吃的 bytes 一樣說 XD
10/20 16:07, 13F

10/21 11:01, , 14F
....還真的,VC不知道CPU可以做80-bit浮點運算嗎?
10/21 11:01, 14F

10/21 13:04, , 15F
Linux 上的 vc ?
10/21 13:04, 15F

10/21 15:03, , 16F
大概覺得64bit不夠80卻夠的機會不多吧
10/21 15:03, 16F
文章代碼(AID): #1IOeDGXP (C_and_CPP)