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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
366
(1): デフォルトの名無しさん [sage] 2024/03/05(火) 18:44:35.96 ID:1i72r55F(1) AAS
>>318
318(1): デフォルトの名無しさん [sage] 2024/03/04(月) 00:48:03.64 ID:nt/dsevV(1) AAS
>>315
素直に100で割らない意味がわからん。
要らんことやって仕事増やすタイプだろお前。

pub fn is_leap_year(year: u64) -> bool {
 let q100 = year / 100;
 ((q100 & 3 == 0) | (q100 * 100 != year)) & (year & 3 == 0)
}
外部リンク:godbolt.org
「let q100 = year / 100;」の方が生成コードが長く遅くなってるな
あくまでも速さ優先ということならば>>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)
}

「let q100 = (year * 42949673) >> 32;」が正解でいいんじゃないか
あとは状況による使い分けだろう
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s