[過去ログ] Qiita 4 - キータぞ、来たぞ、キータだぞー (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
376
(1): デフォルトの名無しさん [sage] 2024/03/07(木) 20:58:11.23 ID:HzTOrgQG(1) AAS
>>315
315(12): デフォルトの名無しさん [sage] 2024/03/03(日) 21:47:18.39 ID:B4rwo5Er(1) AAS
閏年の仕様が変わったら判定関数だけ置き換えればいいのだから
判定関数の中身なんて何でもいいのよ
割り算(剰余算)と分岐はCPUにとって非常に遅いから避けるとするならば例えばこんな感じ

fn is_leap_year(year: u64) -> bool {
 let q100 = (year * 42949673) >> 32;
 ((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
>>374
374(1): デフォルトの名無しさん [sage] 2024/03/06(水) 23:45:18.98 ID:gwIxTDvC(1) AAS
>>367
なるほど
コンパイラが
let q100 = year / 100;

let q100 = ((year as u64 * 1374389535) >> 37) as u32;
へと自動変換してくれてるんだ
これは割り算が遅いため?
を比べると微妙に違うんだな
q100 = (year * 42949673) >> 32
q100 = (year * 1374389535) >> 37
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.040s