(2011/12/24 追記) 旧ブログから記事を移行しています。
バイナリファイルへの出力は2進数でするべきものだと思っていたがどうやら16進数で出力しなければならないようだ(多分)
よって、出力する直前で16進数へ変更してやる必要がある。思いついた方法は全部で3つ
- Char型で読み込んできた文字'5'を16進数に変更
- atoi関数で10進数に直したものを16進数へ変更してやる
- {0,1,1,0,0,1,1,0,0}のような配列に直したものを、ビット演算を駆使して1つの数値(16進数)にする
いづれにせよ3が一番面倒な事になってる。昨日考えていたアルゴリズムは一体なんだったんだろう。一度変更点なしで先生(社長)に聞いてみよう。変更するならそれからにしよう。
これは16進数の値を2進数表現するときに使うアルゴリズム。最上位より
org = 0x1c; for ( i = 15; i >= 0;i--){ printf("%d",(org >> i) & 0x0001); } putchar('\n');
"9C"(16進数)の形式出来たけど、これってパック10進数って言えるの?10進数に直したら152になるよ。