ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2018年9月25日(火) 02:26

All times are UTC+09:00




トピックに返信する
ユーザー名:
件名:
メッセージ本文:
こちらにメッセージをご入力ください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - 16進の割り算がおかしい
作成者 メッセージ
  記事の件名:   引用付きで返信する
どうもです。

Dim a1 As QWord
Dim a2 As QWord
a1 = &h1234567812345678
a2 = a1 / &h10

上記で、エラー「[警告]SingleからQWordに強制変換されています。」が発生するので、おかしいと思いましたが整数除算ですか。
助かりました。

Helpの「演算子」項では、「符号無し演算・・・」としてDWordやWordで”a/b”で解説されていますし、HELPの修正及び注意書追記または、"/"の改善等の対策を希望しておきます。
投稿記事 Posted: 2007年12月21日(金) 18:38
  記事の件名:   引用付きで返信する
これは見事に半年ほど前に私がはまったことと一致していますね。
説明は省略させていただきますが、除算(/)ではなく、整数除算演算子(¥)を使う事で正しく計算する事ができます。
コード:
Dim a1 As QWord 
Dim a2 As QWord 
a1 = &h1234567812345678 
a2 = (a1 ¥ &h10) As QWord 
整数しか入らない型には、整数除算を使うのが安全です。
投稿記事 Posted: 2007年12月21日(金) 17:29
  記事の件名:  16進の割り算がおかしい  引用付きで返信する
AB Ver5 CP4(Rev.265)を使用

コメント部はABが計算した結果です。

Dim a As QWord
a = &h1234567812345678 / &h10 :' a = &h123456781234567(正常)

Dim a1 As QWord
Dim a2 As QWord
a1 = &h1234567812345678
a2 = (a1 / &h10) As QWord :' a2 = &h123456800000000(誤)

Dim b1 As DWord
Dim b2 As DWord
b1 = &h12345678
b2 = (b1 / &h10) As DWord :' a2 = &h1234568(誤:四捨五入?)

Dim c1 As Word
Dim c2 As Word
c1 = &h5678
c2 = (c1 / &h10) As Word :' a2 = &h567(正常)
投稿記事 Posted: 2007年12月21日(金) 12:24

All times are UTC+09:00


ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke