関連記事
- 【#CSharp】C#が2025年「プログラミング言語オブ・ザ・イヤー」獲得 【2026年01月16日(金)】
- なんと!今週の土曜日も仕事してますた.来週の土曜日も仕事臭い.TCPソケット通信をゴリゴリ書いてる 【2025年08月30日(土)】
- 【ChatGPT o4】祝日なのに仕事ーバテすぎー今夜こそ絶命だーモルモルモル 【2025年03月20日(木)】
- 【#CSharp】制御系が動き出したべ 【2025年02月20日(木)】
- 【#CSharp】ひっさしぶりにガッツリなC#案件をやっているぞー 【2025年02月19日(水)】
仕事で必要になったんで、ちょろっと、グレイコード変換クラス、書き起こしてみましたわん!
バグってたら、すまそ(ww
using System;
using System.Collections.Generic;
using System.Text;
namespace bMountLibrary
{
public class GrayCode
{
public GrayCode()
{
}
private const uint MASK_PATTERN = 0x00000001;
//-----------------------------------
//バイナリをグレイコードへ変換
//
// dat : 元のバイナリ値
//
// return : グレイコード
//-----------------------------------
static public uint BinToGrayCode(uint dat)
{
return dat ^ (dat >> 1) ;
}
//-----------------------------------
//グレイコードをバイナリへ変換
//
// dat : 元のグレイコード値
// bitCount : 有効ビット数(1~32)
//
// return : バイナリ値
//-----------------------------------
static public uint GrayCodeToBin(uint dat, int bitCount)
{
uint result = 0;
uint mask1;
uint mask2;
uint tmp1;
uint tmp2;
if ((bitCount < 1) || (bitCount > 32))
{
return 0;
}
uint mask = MASK_PATTERN << (bitCount - 1);
result = dat & mask;
for (int i = 1 ; i < bitCount; i++)
{
mask1 = (mask >> (i -1));
mask2 = (mask >> (i ));
tmp1 = result & mask1;
tmp2 = dat & mask2;
if ((tmp1 != 0) && (tmp2 == 0))
{
result |= mask2;
}
if ((tmp1 == 0) && (tmp2 != 0))
{
result |= mask2;
}
}
return result;
}
}
}

コメント
広島カープの羽月隆太郎容疑者、「ゾンビたばこ」使用の疑いで逮捕
【#総選挙】衆議院選挙 きょう公示 12日間の選挙戦へ
青森 スノーモービル乗るため入山の約10人と連絡取れず 遭難か
【#不発弾】宮崎市中心部の不発弾 17日に処理 避難指示や交通規制予定(26/1/17)
【総選挙】立民 公明 衆院選に向け新党結成で合意(26/1/15)
【大雪】大雪と雷及び突風に関する全般気象情報 第3号(26/1/1)
ブルーレイはオワコン? ソニー生産終了が意味する「次世代メディア」の失敗
ビジネスホテルで火事 1人遺体で見つかる 宿泊客4人けが 水戸
【#ドラセナ】御神木たる幸福の木(ドラセナ):花芽がほころびだした!すごい香りで部屋が満たされてる!