2011-01-07 21 views
2

我正在寫應用程序來控制LPT上的LED。 我有一切工作,除了這一點。 這是一個小功能。在C#中的字節操作#

我有東西要給這樣的:

我想建立功能,將需要兩個參數,並返回一個數字: 在實際代碼的二進制numers將在十六進制。我把它們放在那裏,讓你更容易想象它。

例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

清澈如泥。首先,我不知道「我喜歡那樣:」的意思。另外,在你的總結中,1 + 1 = 1,但在你的例子中,1 + 1 = 0。 ??? – 2011-01-07 23:36:36

+0

@Ani這是一個字節。 – Hooch 2011-01-07 23:37:02

回答

11

本質上,第二個參數中的設置位是您想要刪除的位。所以,你可以簡單地與否定第二個參數:

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

你至少例子遵循這一點。

Alexandre C.筆記中問題的評論,該函數被稱爲含義,即