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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0608
satto型の違うデータに対する等号、不等号演算5解決


satto

リンク

2009/6/8(Mon) 20:10:42|NO.25575

以下のソースコードを実行すると

a = 0
b = ""
c = 0.0
mes "a==b->"+(a==b)
mes "a==c->"+(a==c)
mes "b==c->"+(b==c)
mes "a!=b->"+(a!=b)
mes "a!=c->"+(a!=c)
mes "b!=c->"+(b!=c)

下のような結果が表示されます

a==b->1
a==c->1
b==c->0
a!=b->0
a!=c->0
b!=c->-1

私としては等号はすべて偽となると思うのですが、
この結果はどういう風に解釈すればいいのでしょうか?
それともただ単に規格外の処理を行ったから出てきただけで意味はないのでしょうか?



この記事に返信する


satto

リンク

2009/6/8(Mon) 20:22:23|NO.25576

よくよく考えてみたら、HSPの論理式はすべてビット演算でしたね
バイナリデータとして考えるとa==b、a==cは理解できたのですが
b==c、b!=cがやっぱり良くわかりません



Pascal

リンク

2009/6/8(Mon) 21:16:37|NO.25577

バイナリデータをそのままビット演算しているのであれば、
例示の6つの式の答えは全て0になるはず。

式の中で異なる型の値が登場したときは、全て一番左の型に
合わせられるための結果ですね。



satto

リンク

2009/6/8(Mon) 21:38:53|NO.25578

>式の中で異なる型の値が登場したときは、全て一番左の型に
>合わせられるための結果ですね。
これを失念していました

さらにいろいろ試した結果、string型の場合!=演算を行ったばあい
真が1ではなく-1になるようです



ANTARES

リンク

2009/6/8(Mon) 22:12:38|NO.25579

>さらにいろいろ試した結果、string型の場合!=演算を行ったばあい
>真が1ではなく-1になるようです
 文字コードを大小比較して左が大きい場合は1、
右が大きい場合は-1になります。



satto

リンク

2009/6/8(Mon) 22:21:32|NO.25580

> 文字コードを大小比較して左が大きい場合は1、
>右が大きい場合は-1になります。
なんと!、HSPを4年ぐらい使ってますが、初めて知りましたw



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