- 1 名前:デフォルトの名無しさん mailto:sage [2013/02/04(月) 05:42:06.64 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.81【環境依存OK】 toro.2ch.net/test/read.cgi/tech/1354116880/ ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用) NG推奨:半角にして登録してくだい ◆QZaw55cn4c /tech/1313183984/
- 75 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 15:06:27.48 ]
- #define isOverflow(x, y) (((x) + (y)) < (x) || ((x) + (y)) < (x))
- 76 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 15:07:51.80 ]
- >>75
間違った ×> #define isOverflow(x, y) (((x) + (y)) < (x) || ((x) + (y)) < (x)) ○> #define isOverflow(x, y) (((x) + (y)) < (x) || ((x) + (y)) < (y))
- 77 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 15:20:07.55 ]
- >>76
片方だけでいいんちゃう?
- 78 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 15:27:34.92 ]
- #define isOverflow(x, y) (~(x) < (y) )
これでいいか
- 79 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 15:29:41.18 ]
- >>77
#define isOverflow(x, y) (((x) + (y)) < (x)) だけでいいね >>74は #define isOverflow(x, y) (((x) >> 1) + ((y) >> 1) + ((((x) & 1) + ((y) & 1)) >> 1) >= (1 << (sizeof(unsigned int) * 8 - 1))) かな
- 80 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 15:37:39.60 ]
- uint32_t
isOverfloow(uint32_t x,uint32_t y) { uint32_t z; uint32_t a; a=x%2+y%2; a/=2; z=x/2+y/2; z+=a; return z&0x80000000; }
- 81 名前:79 mailto:sage [2013/02/06(水) 15:52:30.85 ]
- >>80
ああ、そうだった。 ということで>>79は ×> #define isOverflow(x, y) (((x) >> 1) + ((y) >> 1) + ((((x) & 1) + ((y) & 1)) >> 1) >= (1 << (sizeof(unsigned int) * 8 - 1))) ○> #define isOverflow(x, y) (((x) >> 1) + ((y) >> 1) + ((((x) & 1) + ((y) & 1)) >> 1)) & (1 << (sizeof(unsigned int) * 8 - 1))
- 82 名前:デフォルトの名無しさん mailto:sage [2013/02/06(水) 20:13:44.65 ]
- いっそのこと64bitで計算して判定すれば?
|

|