したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が1スレッドの最大レス数(10000件)を超えています。残念ながら投稿することができません。

管理人の独り言5

1ACUVE★:2015/10/08(木) 23:23:45
前スレ:
管理人の独り言4 - 黒歴史集積所
http://jbbs.shitaraba.net/bbs/read.cgi/computer/38153/1414980126/

7861ACUVE★:2016/07/28(木) 16:29:04
Urabe, Shyouheiさんのツイート: "UINT64_MAXを超えそうになったらUINT64_MAXに貼りつく++(つまりoverflowしない)が欲しい。Cで。アセンブラならフラグ見りゃ一発だが。Cにフラグないからな。"
https://twitter.com/shyouhei/status/758475876384313344
-----
(1) if (++a == 0) a = UINT64_MAX;
(2) ++a; a |= -(a == 0);
だと,自分の環境で(1)が1.65倍ぐらい早い.

7862ACUVE★:2016/07/28(木) 16:31:35
(1)
000000013F3A1190  add         rsi,1  
000000013F3A1194  cmove       rsi,rbx  

(2)
000000013F3A12F0  add         rbp,1  
000000013F3A12F4  mov         eax,0  
000000013F3A12F9  sete        al  
000000013F3A12FC  neg         eax  
000000013F3A12FE  cdqe  
000000013F3A1300  or          rbp,rax  

みたいな感じ.

7863ACUVE★:2016/07/28(木) 16:32:28
main.cpp
https://gist.github.com/ACUVE/f8c98491846c130921c70961e404f078
-----
ソース.




掲示板管理者へ連絡 無料レンタル掲示板