@IT会議室は、2009年4月15日に新システムに移行し、さらに2012年5月29日にITエンジニアに特化した
質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用くださいませ。
- PR -

C#でのビットシフトに関して

1
投稿者投稿内容
hisuzuki
会議室デビュー日: 2006/09/20
投稿数: 6
投稿日時: 2006-09-20 20:31
C#でのビット操作は

uint a = 0xFFFFFF00;
uint b = a >> 16;
uint c = a << 16;

などと出来ますが

uint a = 0xFFFFFF00;
uint s = 16;

uint b = a >> s;
uint c = a << s;

と言った風にシフト回数を変数にすると<< >>が演算子と解釈されてしまい

「演算子 '>>' を 'uint' と 'uint' 型のオペランドに適用することはできません。」
エラーが出てしまいます。

メッソッドに「数値」と「シフト数」を与え
計算するメソッドを作成してもいいのですが
もっと綺麗な処理方法が無いかと思い相談させて頂きました。

宜しくお願い致します。

囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-09-20 20:37
?
s を int できない理由があるのですか?
_________________
囚人のジレンマな日々
hisuzuki
会議室デビュー日: 2006/09/20
投稿数: 6
投稿日時: 2006-09-20 20:40
いえ、int出来ない理由はありません。

う・・・申し訳ございません。
intであれば問題ないのですね・・・。

有難うございます。
1

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)