C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 変数に1ビット単位で値を代入したい


(過去ログ 27 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■12924 / inTopicNo.1)  変数に1ビット単位で値を代入したい
  
□投稿者/ ヨディー (1回)-(2008/01/21(Mon) 03:46:34)

分類:[C#] 

はじめまして。C#2005を使用しております。

int型変数もしくはshort型変数に1ビットずつ値を代入したいのですが方法が分かりません。
具体的には、int型変数に1又は0の値が入っていて、その0、1の値を別の変数のLSBから代入していきたいのです。

int Ans = function(); //関数functionより0又は1の値が返ります

このfunction関数から返った0又は1の値を、別の変数 int testに1ビットずつ代入したいのです。
例えば、function変数を繰り返し実行して 0→0→1→1→0・・・ と返ってきたらtest変数には 01100 と代入して12としたいのです。しかし、変数testに1ビットずつ値を代入していく方法が分かりません。

C++ではビットフィールドがあったのですが、C#では使用できず困っております。
どなたかご存じの方がおられましたらお教え頂ければ幸いです。
よろしくお願い致します。





引用返信 編集キー/
■12926 / inTopicNo.2)  Re[1]: 変数に1ビット単位で値を代入したい
□投稿者/ 魔界の仮面弁士 (588回)-(2008/01/21(Mon) 04:38:30)
No12924 (ヨディー さん) に返信
> 例えば、function変数を繰り返し実行して 0→0→1→1→0・・・ と返ってきたら
> test変数には 01100 と代入して12としたいのです。

int test = Convert.ToInt32("01100", 2);
とか。

それ以外だと、あとは BitVector32/BitVector32.Section または BitArray とか。
引用返信 編集キー/
■12927 / inTopicNo.3)  Re[1]: 変数に1ビット単位で値を代入したい
□投稿者/ よねKEN (109回)-(2008/01/21(Mon) 09:28:44)
蛇足ですが、

> このfunction関数から返った0又は1の値を、別の変数 int testに1ビットずつ代入したいのです。
> 例えば、function変数を繰り返し実行して 0→0→1→1→0・・・ と返ってきたらtest変数には 01100 と代入して12としたいのです。しかし、変数testに1ビットずつ値を代入していく方法が分かりません。

function関数の繰り返しの回数(以下ではiに当たる)を記憶しておいて、
それぞれの回の戻り値をその回数分左シフトした値と
結果値用の変数との論理和を取るという原始的な方法もありますね。
以下、サンプル。

int[] test = new int[]{0, 0, 1, 1, 0};
int result = 0;
for (int i = 0; i< test.Length; i++){
result |= test[i] << i;
}
Console.WriteLine(result);

引用返信 編集キー/
■12928 / inTopicNo.4)  Re[2]: 変数に1ビット単位で値を代入したい
□投稿者/ 囚人 (277回)-(2008/01/21(Mon) 09:37:55)
function の回数を4回とするなら

int test = 0;
for(int i = 0; i < 4; i++){
	test |= function() << i;
}


引用返信 編集キー/
■12929 / inTopicNo.5)  Re[3]: 変数に1ビット単位で値を代入したい
□投稿者/ 囚人 (278回)-(2008/01/21(Mon) 09:39:21)
被った。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -