3つの判定を2進数又は16進数にするには?

解決


かんゆう  2004-05-14 09:58:29  No: 113217  IP: [192.*.*.*]

3つのそれぞれの点の色の値を取得して黒か白かを判定しています。
今はそれぞれの値について判定しているのですが
3つの値を2進数又は16進数にしていっぺんに判定したいのですが
3つの値を16進数にするにはどのようにしらたよいですか?
どなたか教えていただけませんか?お願いします

編集 削除
nanashi  2004-05-14 10:53:34  No: 113218  IP: [192.*.*.*]

何が言いたいのかよく分かりませんが……。

16進数にするにはHex関数を使います。

編集 削除
特攻隊長まるるう  2004-05-14 11:03:37  No: 113219  IP: [192.*.*.*]

うーむ。
> 3つのそれぞれの点の色の値を取得
の"3つ"はどの単語を修飾してるんでしょう???
『点』?…なら点が3つあって色の値は Long 型で取得したものが3つある?
いや、黒か白かを判定してるって事はすでに2値?Boolean 型?
『色の値』?…なら色の要素3つ…つまりRGB値のそれぞれの要素で取得してる?
それぞれ Integer 型で3つの要素を持ってるって事?

普通に、数値型の変数を2進数又は16進数で表現する…のは
nanashi さんのおっしゃる方法とか…過去ログにもありそう…
RGB 値3つの値を1つの変数にしたいのなら…そのまんまな RGB 関数を使ってみて下さい。

編集 削除
かんゆう  2004-05-14 11:43:30  No: 113220  IP: [192.*.*.*]

3つは点を修飾してます。
1つの点に対して色をRGBで取得して黒か白のどちらか
というところまでは判定しています。
ですが、3つの点の真、偽を一緒に表示したいので
16進数で表したいのです。
過去のログもみましたが2進数を16進数等に直すものしかなくて・・・
伝わりますかね?国語力のなさを実感しました。
おねがいします。

編集 削除
ぶんた  2004-05-14 12:08:05  No: 113221  IP: [192.*.*.*]

>3つの点の真、偽を一緒に表示したい
というのはどういう処理なのでしょうか
3つの点が全て同じ色だったらTRUEということ?
そうであれば16進数に変換するまでもないと思いますが

編集 削除
ぶんた  2004-05-14 12:14:28  No: 113222  IP: [192.*.*.*]

数値の比較をするなら何進数で表現しようが元の値は
変わりませんので変換する必要はないですよ。
(というか変換してもなにもかわらない)

編集 削除
かんゆう  2004-05-14 13:07:36  No: 113223  IP: [192.*.*.*]

>3つの点が全て同じ色だったらTRUEということ?
はい。そのようなことがしたいのです。
>そうであれば16進数に変換するまでもないと思いますが
変換しなくてもできるというのはわかりますが
プログラムがわかりにくくなるため3つの真偽を
16進数にしたいのです

編集 削除
nanashi  2004-05-14 13:23:02  No: 113224  IP: [192.*.*.*]

まだいまいち意味が分からないんだけど。

>3つの真偽を16進数にしたいのです

例えば『True False True』を&H5(2進数だと101)であらわしたいってことですか??

編集 削除
かんゆう  2004-05-14 13:27:29  No: 113225  IP: [192.*.*.*]

>例えば『True False True』を&H5(2進数だと101)であらわしたいってことですか??
はいそうです。True False Trueという値を
1つづつ取得して判定しているため
&H5(2進数だと101)という形であらわしたいのです。
うまく伝えられなくてすいません。
どーでしょう?

編集 削除
ぶんた  2004-05-14 13:44:16  No: 113226  IP: [192.*.*.*]

整数型変数に整数値を代入するのに型変換なんてものはありませんので
「表したい」というのはテキストボックスか何かに「5」という文字を
出力するってことですよね?

だとすると、白を1、黒を0としてa,b,cがそれぞれの点の値とすると
d=a*2^2+b*2^1+c
で0ビット目がc、1ビット目がb、2ビット目がaとなります。
Text1.Text=hex$(d)
とすれば16進数で表現された「文字」が出力されます

編集 削除
かんゆう  2004-05-14 14:31:51  No: 113227  IP: [192.*.*.*]

ありがとうございます。わかりました。
勘違いをしてました

編集 削除
あぬひ  2004-05-15 11:38:42  No: 113228  IP: [192.*.*.*]

Hex(picture1.Point(X, Y))="FFFFFF" ←白
Hex(picture1.Point(X, Y))="0" ←黒

たぶんこのことかな・・・・?

編集 削除
あぬひ  2004-05-15 11:43:38  No: 113229  IP: [192.*.*.*]

追記
Hex(R) & Hex(G) & Hex(B) = "FFFFFF"

Hex(R+G+B) = "FFFFFF" (+でできるかな?)

編集 削除