ビット配置とシフトやその演算の質問です。

[戻る]
うら 2006/07/08(土) 18:46:41
VC++6でのユーザーです。

1)  16進数で、数値を表示する時は、
   A = 0X3C;
   などとやったりしますが、
   これをビット配置にするとどうするのでしょうか?
   A= '01011010'b;
   違うかな?

2) また、左や右に1ビットずつ(あるいは2ビットでも)
   ビットのシフトやローテーションさせるのに、妥当な関数はありますか?

3) A = 0X3C;
   B = 0XE8';
   とある時、
   Aの上から3ビット目('0'bかな)
   と
   Bの上から5ビット目('1'bかな)
   を2進数で足すような演算
   (この場合は、結果は、'1'bかな。もし'1'bと'1'bが足されたら、'0'bになる)
   は、どのような記述になるのでしょうか?

επιστημη 2006/07/08(土) 18:59:55
1: C/C++では二進数を直接コード中で表現できません。
2: シフト演算子 << >> があります。ローテーションはナシ
3: & | ^ を使います。

参考書を読んでください。

tetrapod 2006/07/09(日) 12:56:04
http://forums.belution.com/ja/cpp/000/011/57s.shtml
こんなスレを自己紹介しておくテスト

うら 2006/07/09(日) 18:14:43
[[解決]]
皆様

いろいろ参考になるご意見ありがとうございます。
参考にします。

私も調べましたが、MSDNによると
回転は、
_lrotl、_lrotr
というやつで出来るようですね。

ありがとうございました。

古いスレッドには追加発言できません。