掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ビット操作後のAND (ID:46940)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
年末年始はさすがに回答者が少ないようですね 実行環境が無いので試していませんが c3 := ( Integer( buff[ M + 3 ]) shl 24 ); と c3 := ( Integer( buff[ M + 3 ]) shl 24 ) and $FF000000; では、計算方法が異なります。 上記では式の中で使われている変数でもっとも大きいのが 「Integer型」ですのでIntegerとして計算されます。 その結果、値が2147483648になった瞬間エラーになります 下記では式の中で使われている変数でもっとも大きいのが 「LongWord型」ですのでLongWordとして計算されるのでエラーが出ません。 LongWord型はありませんが「$FF000000」という値を使った瞬間 LongWord型が使われていると解釈されますので エラーが出ないのです。 and $FF000000の代わりに or $FFFFFFFF でもエラーが出なくなると思います
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.