
No.1ベストアンサー
- 回答日時:
私はCはほとんどしたことがないのですが,機械語でそのようなプログラムを組む場合,10で割っていって余りを記録し,割られる数が0になるまで繰り返して組んだ記憶があります。
アルゴリズムは言語が変わっても同じだと思います。例)123をBCDに直す場合,
123÷10=12・・・3
12÷10=1・・・2
1÷10=0・・・1
これを逆に並べて「123」というBCDデータになりました。
もしかするとこの程度はCのライブラリにあるかもしれませんね。
この回答へのお礼
お礼日時:2004/12/03 12:37
ありがとうございました。ビットをシフトさせていったら出来るのかなとか考えていたのですが、出来なくて困っていました。教えていただいた方法ならわかりやすいですね。大変助かりました。
No.4
- 回答日時:
>バイナリデータは16ビットです。
bcd = ((n/10000)<<16)|(((n%10000)/1000)<<12)|(((n%1000)/100)<<8)|(((n%100)/10)<<4)|(n%10);
ですが、見にくいので、ANo.1さんの手を使いましょう。
答えが最大20ビットになるので、20ビット以上を扱える型が必要です。文字型で欲しければANo.2さんのsprintfです。
unsigned int bin2bcd(unsigned int n) {
unsigned int bcd=0;
unsigned int base=0;
while (n>0){
bcd |= (n%10)<<base;
base += 4;
n /= 10;
}
return bcd;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
5人のテストの点数を入力すると...
-
Cプログラミング
-
フリーセルの難易度について
-
C♯で電卓を作成しています。演...
-
[ EXCEL VBA ] 図形を読み込む...
-
BCDについて
-
プログラミングをしたいのです...
-
C# 再帰よるスタックオーバー...
-
連立方程式を解く
-
VBAで仕様書は書きますか?
-
あるプログラムのコマンドライ...
-
GPIB制御
-
65536は2の何乗なのでしょうか?
-
フローチャートの菱形が狭い。。。
-
C++でアボート(Abort)で処理が...
-
OS入ってる機器のソフト・アプ...
-
excelのexe化について
-
C++ で、「)」が必要 というエ...
-
VBAの再計算が反映されない件に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
アルゴリズムとプロトコールの違い
-
期間重複チェックがわかりません
-
グループを均等に分けるには?...
-
BCDについて
-
シミュレーテッドアニーリング...
-
[ EXCEL VBA ] 図形を読み込む...
-
関数がどうしても分かりません
-
アルゴリズム フェルナンデス...
-
アルゴリズムについて(ちょい...
-
basicプログラムです。
-
乗換案内の作り方が知りたいです。
-
フローチャート等を説明したHP
-
動画で間違ったこと言っている
-
パスワードつきZIPの暗号化アル...
-
暗号化アルゴリズム
-
5人のテストの点数を入力すると...
-
ハノイの塔のさいきアルゴリズ...
-
ベイチ・カルノー図以外のとき方。
-
gooという検索エンジンの後にGo...
おすすめ情報