仕事で必要になったんで、ちょろっと、グレイコード変換クラス、書き起こしてみましたわん!
バグってたら、すまそ(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; } } }
関連記事
一流プログラマーになるためには「1万時間の法則」ならぬ「3万時間の法則」が適用される 【2021年04月05日(月)】
- 【#CPP #python】鬼のようにC++書いてた.Sqlite3のDatetimeの表現方法差異でどっぷりハマってた(汗 【2021年03月09日(火)】
- 【#CSharp】ぬおっ!スレッドを殺す条件間違えて,メモリリークしてやがったヤバス 【2021年02月19日(金)】
- 一仕事終わったが,処理速度遅いんでスレッド化するー 【2021年02月16日(火)】
- 【C++】CPPで鬼のような実装を行った!動いた!!キタ――(゚∀゚)――!! 【2020年09月29日(火)】
コメント
【#新型コロナウイルス】東京都「まん延防止等重点措置」発動決定(21/4/8)
【#新型コロナウイルス】宮崎:変異株の陽性者 2人 見つかる(21/4/9)
菅首相「春解散」見送りへ
【#新型コロナウイルス】高齢者向けワクチン きょう以降 都道府県に配送(21/4/5)
土曜日じゃけど,雨ですなぁ
【#地震】鹿児島で地震(21/4/2)
首,病院に行ってきたべ 普通のコリって言われた(汗
首が痛いのよのぉ