HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0808
ta-ka| について6解決


ta-ka

リンク

2010/8/8(Sun) 17:48:37|NO.34308

lup|= (iph = 2) * 40
はどういう意味になるのでしょうか?



この記事に返信する


f3d

リンク

2010/8/8(Sun) 19:08:40|NO.34309

lup = lup | ( (iph = 2) * 40 )
です。

a += b が a = a+b だというのと同じようなものです。

|は論理和といい
比較値のビットがどちらかまたは両方足っていたら正というものです。

lupが2以外の場合は、
lup = lup

lupが2の場合は、
lup = lup | 40

です。



whoさん

リンク

2010/8/9(Mon) 10:33:30|NO.34310

lup|= (iph = 2) * 40
は、
lup= ( lup | ((iph = 2) * 40) )
です。

iph = 2 というのは、iph=2 なら (iph=2)は1です。
iph ≠2 なら (iph=2)は0です。

|は論理和です。
例えば
40|10は
二進数に治すと、
101000|001010
で、
縦に並べると
101000
001010 この上下の数字にひとつでも1が入ると1で、無いと0になります。
------
101010 ←つまりこうです

で十進数に治すと、42
つまり
40|10=42です。



KA

リンク

2010/8/9(Mon) 22:46:56|NO.34319

そもそも、こういう質問(式)が何で出てきたの?
普通は、こういう式自体を思いつきません(個人的には)。

他の言語やらスクリプトを、解析していて行き詰まったとか?(好奇心かも)

既出の解釈が合っていても、文法的にはかなり不可思議と思います。
あまり奇抜な文法より、分かりやすい文法を心がけましょう。
自分でも、分けが分からなくなりますよ。



ta-ka

リンク

2010/8/10(Tue) 14:57:47|NO.34333

よくわかりました。

ありがとうございました。



(´・ω・`)

リンク

2010/8/12(Thu) 08:41:08|NO.34372

まじか、+=や-=でなく論理演算記号も同じ使い方ができるとですか!

同じく勉強になりました……(u´ω`)



SYAM

リンク

2010/8/12(Thu) 11:38:09|NO.34376

同じく。。。
昔できなかったことがいつの間にかできるようになってて、質問への回答でそれを知るなんてことがHSP3になってから何度もあります。
わたしが更新情報見てないからですけど。orz



ONION software Copyright 1997-2023(c) All rights reserved.