トップページ > プログラム > 2021年04月18日 > lylRPiha

書き込み順位&時間帯一覧

1 位/145 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000110000002001207



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part155

書き込みレス一覧

C++相談室 part155
223 :デフォルトの名無しさん[sage]:2021/04/18(日) 10:59:46.23 ID:lylRPiha
質問なのですが教えてくだちい
Q1. 64 bit符号付整数の積の結果をオーバーフロー無しで(128 bit等で)で得る方法
  ※ 64 bit整数を2^32進数2桁とみなして筆算する処理より速い方法キボン
    SSE4.1可

Q2. (Q1にうまいやり方が無い場合)64 bit符号付整数の積がオーバーフローしたことを検知する方法

Q3. 多倍長整数(例えば8要素のunsigned longの配列として表された符号無し整数0〜2^256-1)
  を10で割る方法orz
C++相談室 part155
224 :デフォルトの名無しさん[sage]:2021/04/18(日) 11:05:45.65 ID:lylRPiha
Q2は現状a*bの前に std::abs(a) <= std::numeric_limit<int64_t>::max / std::abs(b) という判定をやっているのですが
もっと速いやつ(除算不要のやつ)キボン、
C++相談室 part155
231 :デフォルトの名無しさん[sage]:2021/04/18(日) 18:08:23.13 ID:lylRPiha
とりあえず筆算のやつをゴリゴリ書いてや
った
https://ideone.com/pcltLW
C++相談室 part155
233 :デフォルトの名無しさん[sage]:2021/04/18(日) 18:34:03.31 ID:lylRPiha
>>232
kwsk
C++相談室 part155
235 :デフォルトの名無しさん[sage]:2021/04/18(日) 21:49:11.94 ID:lylRPiha
(聞くんじゃなかった…
C++相談室 part155
236 :デフォルトの名無しさん[sage]:2021/04/18(日) 22:02:51.07 ID:lylRPiha
ちゅか10で割るのは10の剰余を知りたいからなのだというのは
言ってなかったわサーセン、orz
多倍長整数の10進数表現を得るために、多倍長整数を10で割って剰余を求める必要があった
この目的には誤差の見積や処置が面倒な方法はNGでありかつ
10進数化とかどうせ表示の時しか使わないのでこの割り算自体はそうメチャクチャチューニングする必要は
ありませぬ(と後出し
C++相談室 part155
237 :デフォルトの名無しさん[sage]:2021/04/18(日) 22:16:10.35 ID:lylRPiha
もしガチで全く除算を使わずに10進数に変換せよと言われたら
5*10^n、2*10^n、1*10^nを作ってnがデカい順に元の数と比較して引いていく、
ぐらいしかなさげ
知らんけど


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。