次の方式によって求められるチェックデジットを付加した結果はどれか。
ここで,データを7394,重み付け定数を1234,基数を11とする。
〔方式〕
(1) データと重み付け定数の,対応する桁ごとの積を求め,それらの和を求める。
(2) 和を基数で割って,余りを求める。
(3) 基数から余りを減じ,その結果の1の位をチェックデジットとしてデータの末尾に付加する。
正答1
解説
正解は1です。
チェックデジットは、入力ミスを検出するためにデータの末尾に付ける検査用の数字です。
問題の方式どおりに、重み付きの積の和、基数での余り、基数から余りを引いた値の1の位、の順に求めます。
データ7394の各桁には、上の桁から順に重み1、2、3、4を掛けます。
【計算】
(1) 積の和=7×1+3×2+9×3+4×4
=7+6+27+16=56
(2) 56÷11=5余り1
(3) 11−1=10
10の1の位は0なので、チェックデジットは0です。
付加した結果は73940になります。
【選択肢別解説】
1:○ 方式どおりに計算するとチェックデジットは0になり、73940となります。
2:× 末尾の1は、(2)で求めた余りをそのまま付けた値です。
方式では基数から余りを引いた結果の1の位を使うので、正しくは0です。
3:× 末尾の4は、重みを逆順(4、3、2、1)に掛けたうえで、余りをそのまま付けた値です。
逆順だと積の和は7×4+3×3+9×2+4×1=59となり、59÷11の余りが4になります。
重みは上の桁から1、2、3、4の順に掛け、基数から余りを引く必要があります。
4:× 末尾の7は、重みを逆順に掛けて余り4を求め、11−4=7とした値です。
(2)と(3)の手順は合っていますが、重みの対応が逆なので誤りです。
【ポイント】
「基数から余りを減じ、その1の位を付ける」という指示を最後まで読むことが大切です。
11−1=10のように2桁になる場合は、1の位の0を使います。
データと重み付け定数は、同じ位置の桁どうしを掛け合わせます。