ab.com コミュニティ https://www.activebasic.com/forum/ |
|
16進の割り算がおかしい https://www.activebasic.com/forum/viewtopic.php?t=2192 |
ページ 1 / 1 |
作成者: | Tako [ 2007年12月21日(金) 12:24 ] |
記事の件名: | 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(正常) |
作成者: | OverTaker [ 2007年12月21日(金) 17:29 ] |
記事の件名: | |
これは見事に半年ほど前に私がはまったことと一致していますね。 説明は省略させていただきますが、除算(/)ではなく、整数除算演算子(¥)を使う事で正しく計算する事ができます。 コード: Dim a1 As QWord Dim a2 As QWord a1 = &h1234567812345678 a2 = (a1 ¥ &h10) As QWord整数しか入らない型には、整数除算を使うのが安全です。 |
作成者: | Tako [ 2007年12月21日(金) 18:38 ] |
記事の件名: | |
どうもです。 Dim a1 As QWord Dim a2 As QWord a1 = &h1234567812345678 a2 = a1 / &h10 上記で、エラー「[警告]SingleからQWordに強制変換されています。」が発生するので、おかしいと思いましたが整数除算ですか。 助かりました。 Helpの「演算子」項では、「符号無し演算・・・」としてDWordやWordで”a/b”で解説されていますし、HELPの修正及び注意書追記または、"/"の改善等の対策を希望しておきます。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |