- PR -

16進数のAND値の取得について

投稿者投稿内容
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-07-31 11:47
この程度のこと、自分で調べなさいよ。
わたしゃVB.netのことなんてなんにも知らないけど。

http://www.google.co.jp/search?hl=ja&c2coff=1&client=firefox&rls=org.mozilla%3Aja%3Aofficial&hs=otM&q=vb.net+%E6%95%B0%E5%80%A4%E3%80%80%E6%96%87%E5%AD%97%E5%88%97%E3%80%80%E5%A4%89%E6%8F%9B&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-07-31 17:38
引用:
dim astatus as string
このうち3バイト目から2バイトに
'FF'とかといった値が入っており、
この値と&h40とのAND値を比較しないとならないのです。

この場合、下記の表現はどう変わりますか?
16進数表記の2バイト文字列を本来の1バイトの値に変換しないと
いけないと思いますが・・・

2バイト文字列ってマルチバイト文字が含まれてるってことですかね。
stringは文字列です。何バイト目という概念はないですよ。
○○のエンコーディングでバイト配列化したときに何バイト目、という考え方になると思います。

Encoding.GetBytesを使うことになるだろうか。

[追記]
ん、、「3バイト目から2バイトに 'FF'」?・・マルチバイトではないのか。。
'FF'という'文字列'が&hFFを意味するように作られている、という話か。。
だったらstringをぶったぎってからbyte.Parseでもしたほうが楽か。

[ メッセージ編集済み 編集者: べる 編集日時 2007-07-31 17:59 ]
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-07-31 18:05
引用:

べるさんの書き込み (2007-07-31 17:38) より:

2バイト文字列ってマルチバイト文字が含まれてるってことですかね。
stringは文字列です。何バイト目という概念はないですよ。
○○のエンコーディングでバイト配列化したときに何バイト目、という考え方になると思います。


僕の考えでは、スレ主さんはバイトと文字の違いの解釈が曖昧で、2文字
目のことを2バイト目と言っているだけだと思っていました。
その上で

引用:

16進数表記の2バイト文字列を本来の1バイトの値に変換しないと
いけないと思いますが・・・


という表現をしているために余計に紛らわしくなっているわけですが。
「16進数表記の2バイト文字列」= "23" のような文字列
「1バイトの値」= 0x23
なのではないかと。

Database Expert 会議室のスレッドを見る限りでは、6文字の3文字目
と4文字目が16進数の文字列になっているので、それを数値に変換→
0x40 との AND を取る、ということがしたいようです。

さらっと HiRDB のオンラインマニュアルを見た限りではそういったことはで
きなさそうだった(環境がないのでテストもできないし)ので、最終的には
.NET 側で処理を行う必要がありそうですね。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-07-31 18:21
ある値を、16進数の数として表現すると、0xf0 となる。
同じ値を、10進数の数として表現すると、240...でよかったかな?
同じ値を、16進数で表現した文字列として表現すると、f0 になる。

値と表現をごちゃ混ぜにしてるからわかりにくい。

スキルアップ/キャリアアップ(JOB@IT)