Opened 14 years ago

#117 new タスク

符号無整数型に対してMod演算子が正しく機能しない

Reported by: イグトランス (egtra) Owned by: dai
Priority: 中-major Milestone: AB5 CP6
Component: Compiler Version:
Keywords: Cc:

Description

次のコードでは、2-3行目が正しい値、最終行が-2、残りは-1が出力されます。符号無整数型をModの演算対象にした場合、対応する符号付整数型で演算されているのではないでしょうか。DWord→Int64のようにより大きい符号付整数型へ型変換すると問題を回避できます。

#prompt

Dim dw = &hffffffff As DWord
Print dw Mod 10
Print dw As Long Mod 10
Print dw As QWord Mod 10
Print dw As Int64 Mod 10

Print dw As Word Mod 10
Print dw As Byte Mod 10

Dim qw = &hffffffffffffffff As QWord
Print qw Mod 10

dw = &hfffffffe
Print dw Mod 10 '-2

Sleep(-1)

Change History (0)

Note: See TracTickets for help on using tickets.