- - PR -
16進数のAND値の取得について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-30 19:15
今後は、Database Expert 会議室に
同様の質問を投げさせていただきます。 | ||||||||
|
投稿日時: 2007-07-30 23:16
どの辺が化石? | ||||||||
|
投稿日時: 2007-07-31 01:42
ああ通じてなかったんだ。 いや質問者がさ。
>vb.netで実現するには >vb.netで実現するには >vb.netで実現するには ってかいてあったから気になったんだよねぇ。 | ||||||||
|
投稿日時: 2007-07-31 06:58
ぶさいくろうさん
コメントだと理解するのはかなり難易度高いと思う。 それはそれとして。
ならない時とかもあるから、某COBOLとかならともかくも数年前の環境なら十分アリじゃない? | ||||||||
|
投稿日時: 2007-07-31 09:33
スレ主へのコメントではなく、TADさんへのコメントでは? スレ主がVB.NETについての質問をされていますが、それに対して "VB6では"と断りを入れずに、 > IF文の条件式は数値型を与えると0はfalse, 0以外はtrueとして評価しますから > コード: > ---------------------------------------------------------------------------- > > If &hFF And &h40 Then と書かれていることへの指摘だと思います。 VB.NETでOption Strict On指定の環境ではこのレガシーなやり方はコンパイルエラーになります。 その点も踏まえた上で、 ・VB6以前ではこういう書き方もできるよ ということを ・でも、VB.NETではあまり推奨されない ・C#やJavaではこういう書き方は禁止されている (明示的にbool型へのキャストが必要) などの周辺知識を含めて配慮いただくとよりよいかと思います。 #ただ、VB6以前でも「If &hFF And &h40 Then」という書き方は #保守性を考えるとお勧めできない書き方ですね。 #もう一つ条件を加えようとするとこの書き方はできません。 #無用なバグを生みます。 # #例) If (&hFF And &h40) And (A And &h20) Then ' Aは変数。VB6でのコードです。 #同じ発想で保守担当者がAndでさらに条件を追加した場合、 #変数Aの値により予期しない結果になります。A=&H20だと・・・ [ メッセージ編集済み 編集者: よねKEN 編集日時 2007-07-31 09:45 ] | ||||||||
|
投稿日時: 2007-07-31 09:49
いや君への突っ込みだよ。 はっきり書いたつもりだったのでここまであさっての返信がくるとは思わなかった。 よもや俺へ勘違い指摘とはね・・・
だからこの突っ込みは「おかど違い」だからね。 よねKEN氏の投稿とも合わせてみればもうそろそろわかるかなー???^^ [ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2007-07-31 09:56 ] | ||||||||
|
投稿日時: 2007-07-31 10:11
あ、それでよ〜くわかりましたです。はい。 #ぶさいくろうさんの投稿スタイルについてくにはまだまだ諸々レベルが足らんな>ヲレ | ||||||||
|
投稿日時: 2007-07-31 11:37
スレッドの主です。
SQLで対応と前に書きましたがVB.netでの対応も必要な 箇所が出てきました。 dim astatus as string このうち3バイト目から2バイトに 'FF'とかといった値が入っており、 この値と&h40とのAND値を比較しないとならないのです。 この場合、下記の表現はどう変わりますか? 16進数表記の2バイト文字列を本来の1バイトの値に変換しないと いけないと思いますが・・・ If &hFF And &h40 Then '成功 Else '失敗 End If |