2003年12月29日(月) 「前回はこちらから」
●16進数を3〜5桁の10進数に変換
前回は測定基準時間(タイマー)と測定値を数えるカウンターを設定、割り当てましたが、今回はこのカウンターの値を10進数に変換します。マイコン内部は最小単位が2進数、ブロック単位では16進数で処理しておりますので、このままですと、人間が値を読むのが困難になります。よって通常は10進数に変換する事になります。尚、今回のカウンターは16ビット幅なので、2の16乗=65535までカウントする事が出来ます。
●変換アルゴリズム
16進数を10進数へ変換する方法は何種類かあるようですが、ここでは2種類の方法を評価し、変換速度の早いほうを採用しました。
変換方法その1
カウンター値を元に各桁、負になるまでその桁の倍率値を引く方法
特徴 → 数値によって、変換時間が異なるが平均的には早い。 メモリ使用量多い
変換方法その2
カウンター値を10で除算していく方法
特徴 → どんな数値でも変換時間は一定。 メモリ使用量少ない。
(ライターに添付されていたサンプルソフトを改造したものなので公開は控えます)
|