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

解決


かんゆう  2004-05-14 18:58:29  No: 113217

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


nanashi  2004-05-14 19:53:34  No: 113218

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

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


特攻隊長まるるう  2004-05-14 20:03:37  No: 113219

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

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


かんゆう  2004-05-14 20:43:30  No: 113220

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


ぶんた  2004-05-14 21:08:05  No: 113221

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


ぶんた  2004-05-14 21:14:28  No: 113222

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


かんゆう  2004-05-14 22:07:36  No: 113223

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


nanashi  2004-05-14 22:23:02  No: 113224

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

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

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


かんゆう  2004-05-14 22:27:29  No: 113225

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


ぶんた  2004-05-14 22:44:16  No: 113226

整数型変数に整数値を代入するのに型変換なんてものはありませんので
「表したい」というのはテキストボックスか何かに「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 23:31:51  No: 113227

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


あぬひ  2004-05-15 20:38:42  No: 113228

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

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


あぬひ  2004-05-15 20:43:38  No: 113229

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加