2011-01-07 9 views
2

LPT의 LED를 제어하는 ​​응용 프로그램을 작성 중입니다. 나는 이것을 제외하고는 모든 것을 가지고있다. 이것은 하나의 작은 함수입니다.C#의 바이트에 대한 연산

나는 그렇게 STH 있습니다 을 그 바이너리 numers 16 진수에있을 것입니다 실제 코드에서 :

내가 두 개의 인수를 하나의 수를 반환합니다 기능을 구축하고자합니다. 나는 그것을 당신이 시각화하는 것이 더 쉽도록 그것들을 거기에 놓았습니다.

예 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

기본적으로 두 번째 인수의 설정 비트는 제거하려는 비트입니다. 그래서 당신은 단순히 과 부정 두 번째 인수로 수 : 적어도

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

귀하의 예는이 따릅니다. 질문에 대한 코멘트에 Alexandre C. 참고 함수가 연루 불리는

, 즉 B.

+0

@Hooch : 무슨 실수요? 여전히 같은 동작입니다. – Joey

+0

내 게시물을 다시보십시오 – Hooch

+0

고마워요. 신경 쓰지 마 – Hooch