[過去ログ] C++相談室 part155 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
223(4): 2021/04/18(日)10:59 ID:lylRPiha(1/7) AAS
質問なのですが教えてくだちい
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
224: 2021/04/18(日)11:05 ID:lylRPiha(2/7) AAS
Q2は現状a*bの前に std::abs(a) <= std::numeric_limit<int64_t>::max / std::abs(b) という判定をやっているのですが
もっと速いやつ(除算不要のやつ)キボン、
231(1): 2021/04/18(日)18:08 ID:lylRPiha(3/7) AAS
とりあえず筆算のやつをゴリゴリ書いてや
った
外部リンク:ideone.com
233: 2021/04/18(日)18:34 ID:lylRPiha(4/7) AAS
>>232
kwsk
235(1): 2021/04/18(日)21:49 ID:lylRPiha(5/7) AAS
(聞くんじゃなかった…
236(2): 2021/04/18(日)22:02 ID:lylRPiha(6/7) AAS
ちゅか10で割るのは10の剰余を知りたいからなのだというのは
言ってなかったわサーセン、orz
多倍長整数の10進数表現を得るために、多倍長整数を10で割って剰余を求める必要があった
この目的には誤差の見積や処置が面倒な方法はNGでありかつ
10進数化とかどうせ表示の時しか使わないのでこの割り算自体はそうメチャクチャチューニングする必要は
ありませぬ(と後出し
237: 2021/04/18(日)22:16 ID:lylRPiha(7/7) AAS
もしガチで全く除算を使わずに10進数に変換せよと言われたら
5*10^n、2*10^n、1*10^nを作ってnがデカい順に元の数と比較して引いていく、
ぐらいしかなさげ
知らんけど
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s