
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> MAX値から前回値を引いた値を、現在値に加算
なら、
差 = MAX値 - 前回値 + 現在値
ですが、
MAX = 0xFFFF
前回値 = 0xFFFF
現在値 = 0x0000
の場合、
差 = 0xFFFF - 0xFFFF + 0x0000 = 0
正解は1なので、結果の良し悪しではなく間違いです。
正しくは、
差 = MAX値 - 前回値 + 現在値 + 1
です。
ただし、#1の方のとおり、オーバーフローを利用すれば、常に
現在値 - 前回値
で問題ありません。
No.1
- 回答日時:
一般的に言えば、誤りです。
タイマーが1週以上してる可能性もあるので。前回の計測から今回の計測まで絶対に1周以上回っていない、という前提が成り立つなら、それでも殆ど問題ありませんが
その場合は(Intelのような、減算によるアンダーフローで例外が飛ばないCPUの場合は)、単に減算する方が良い結果になります。
例)
前回:0xf000 今回:0x0050 として
0x0050 + (0xffff - 0xf000) = 0x104f
0x0050 - 0xf000 = 0x1050 (16bit整数型を用いる場合。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
C#でのIF文 時間比較のやり方
-
VB6.0-整数と余りを求める
-
足して100になるような乱数のア...
-
Excel-vba 文字列と変数を...
-
フリーランタイマーの時間差分...
-
EXCEL/VBA 変数の値をクリップ...
-
Windows Media Playerで動画を...
-
エクセルへのデータの貼付時に...
-
vbsでテキストファイル内の文字...
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
VisualStudio2022でC言語プログ...
-
VBAのWorksheetFunctionの引数...
-
excelの、ある数式内の{}の意...
-
vba 最大値 条件分岐
-
gridViewの行選択解除
-
jsp~jspにhiddenを使って変数...
-
PL/Iについて、教えてください。
-
Variant型で宣言してるのにEmpt...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
C#で動的にコントロールを取得...
-
VBAで配列のNULL判定
-
フリーランタイマーの時間差分...
-
足して100になるような乱数のア...
-
DWORDって
-
ラジオボタンの値の取得につい...
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
-
定数のメリットとは?
-
C#でのIF文 時間比較のやり方
-
Excel VBA Forの使い方について...
-
【C++/CLI】コンボボックスの値...
-
DataGridView 複数行同時変更...
-
世界のナベアツ
-
CGIのPerlの変数をJavaScrip...
おすすめ情報