Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: Yuichiro Okamura Newsgroups: playstation.ny.program.beginner Subject: Re: =?iso-2022-jp?B?GyRCJVElQyVJJE5GSSRfPGgkahsoQg==?= Date: Mon, 23 Mar 1998 13:21:35 +0900 Organization: PlayStation Net Yarouze Lines: 26 Message-ID: <3515E34F.24362C2F@ba.mbn.or.jp> References: <35144557.7D2E@ed.noda.sut.ac.jp> <35152732.9BD7F1F8@ba.mbn.or.jp> <6f3d9q$hif@news1.scei.co.jp> NNTP-Posting-Host: 202.217.122.170 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.04 [ja] (Win95; I) Tako wrote: > えっとこのトリガーというところがちょっと分かりづらいです. > つまりold_key=keyの時にはtriger=/=keyとなり,old_key=/=keyの時にはtriger=key > となるということでしょうか?ここの ~ はどういう意味があるのでしょう. > なんとなくわかってもやっぱりちゃんと理解したいもので(^^; こんにちは。Yuuです。trigerに関してですがわかりやすいように1ビットでいきます。 例えばold_keyが0でkeyが1だったとすると、~old_keyで反転して(0が1に、1が0に) それとkeyとアンドします。 triger = (~old_key) & key; を triger = ~old_key;  (1) triger = triger & key;  (2) とかくと、今の例の場合(1)でtrigerは1となり、(2)で1となります。 こうするとtrigerはold_keyが0でkeyが1のときは1になって、それ以外では0です。 つまり押された「瞬間」だけ1になります。 u_longはlibps.hの中で typedef u_long unsigned long; となってますので、unsigned longといっしょです。長いので省略してるだけです。 Yuu(seryu@ba.mbn.or.jp)