2011-01-07 17 views
2

私はLPTのLEDを制御するアプリケーションを書いています。 私はこれを除いてすべての作業をしています。 これは小さな関数の1つです。C#のバイトの操作

は、私はそのようなSTHを持っている: をそれらのバイナリnumersヘクスになります実際のコードでは:

は、私は2つの引数を取り、1つの数を返す関数を構築したいです。私はあなたがそれを視覚化するのがより簡単になるように、それらをそこに置きます。

例1:

arg1 = 1100 1100 
arg2 = 1001 0001 
retu = 0100 1100 

例2:

arg1 = 1111 1111 
arg2 = 0001 0010 
retu = 1110 1101 

例3:

arg1 = 1111 0000 
arg2 = 0010 0010 
retu = 1101 0000 

私は、この関数は次のようになりべきか見当がつかない。 できるだけ早くしたいです。

私は毎秒200回この関数を呼び出します。

+1

泥として澄んでいます。まず、私は "私はそれのようなsthを持っているか分からない:"手段。また、要約では、1 + 1 = 1ですが、例では1 + 1 = 0となります。 ??? –

+0

@Aniこれは1バイトです。 – Hooch

+0

@Jonathan Wood私はそれを編集します – Hooch

答えて

11

基本的に、2番目の引数の設定ビットは削除するビットです。だから、単に否定二番目の引数を持つことができます。

byte Foo(byte a, byte b) { 
    return (byte)(a & ~b); 
} 

あなたの例で、少なくともこれに従ってください。質問に対するコメントで

Alexandre C.としてノート、機能が含意、即ちB呼ばれます。

+0

@Hooch:どのような間違い?それはまだ同じ操作です。 – Joey

+0

私の記事をもう一度見てください – Hooch

+0

ありがとう。気にしないで – Hooch