- ベストアンサー
intの分割
暗号を解読するソフトをつくりたいのですが ある計算をして、例えばCAD6(16進数)となれば C=f A=u D=j 6=i というように暗号変換表を用いて変換します。 この変換作業までを自動で行えるようにしたいのですが C A D 6を別々の変数に入れたい場合どのようにすればいいのでしょうか? ヒントだけでもいいので教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ビットフィールドを使えばよいかと思います。 エンディアンには注意が必要ですが。 #include <stdio.h> int main(void) { typedef struct { unsigned int lowlow:4; unsigned int lowhigh:4; unsigned int highlow:4; unsigned int highhigh:4; } angoType; angoType *ango; int motoData; motoData = 0xcad6; ango = (angoType*)&motoData; printf("lowlow=%x lowhigh=%x highlow=%x HighHigh=%x\n", ango->lowlow,ango->lowhigh, ango->highlow,ango->highhigh); }
その他の回答 (2)
- SAYKA
- ベストアンサー率34% (944/2776)
それじゃNo1とは別口で・・・ http://www9.plala.or.jp/sgwr-t/c/sec14.html#s14-1
お礼
よくわからないです・・・ まだ初心者なもので。 これからもっと勉強しようと思います ありがとうございました
- Ceren
- ベストアンサー率49% (90/183)
ビットマスクとビットシフトを使って演算すればいいのではないでしょうか?
お礼
もうちょっと簡単にできませんかね? sprintfを使って文字列に変換したあと printf("%s\n",b[0]); などとしてもセグメントエラーが出てしまいます。 どうしてでしょう?
お礼
ありがとうございます。 でも何が何だかわからないですw 本を片手に少しずつ紐解いてみようと思います。 ありがとうございました。