現在、2進数や10進数、ビット演算などの理解を深めたく
自分でVisual Studio2017でC#を使い
10進数を2進数や16進数へや2進数を8進数にと言った数値を変換するアプリを開発しているのですが
開発過程で「BCD」と言うものがあるのを知りました。
せっかくなのでデータ型も変換できるメソッドを追加したいのですが
byteをBCDへ変換するのは上手くいったのですが
逆のBCDをbyteに変換するのが上手くいきません。
BCDに範囲があり範囲外の為上手くいか無いと先輩にアドバイスを貰ったのですが、
そもそもBCDの範囲の意味がわかりません。
調べても詳しい説明がお手上げです。
ネットで下記のコードでBCDの範囲を調べられるとあったのですが
何故これでBCDの範囲になるのでしょうか。
1011などで表す必要が有る数値がある場合範囲外になるのでしょうか。
しかしBCDでは1011(11)は0001-0001と表すので関係ないと思うのですが
私の認識は間違っているのでしょうか。
BCDの範囲とはどこからどこまでをさすのか。
何故下記のコードでBCDの範囲になるのでしょうか。
以上2点お答えいただけると嬉しいです。
詳しい方ご教授をお願いします。
C#
1 2(((data & 0xf0) > 0x90) || ((data & 0x0f) > 0x09)) 3 4 //dataには自分で好きな数字を入力します
回答2件
あなたの回答
tips
プレビュー