비트 연산에 대한 질문 (비트 빼기는 어떤식으로 하나요?)
글쓴이: air74 / 작성시간: 월, 2005/05/16 - 9:25오후
안녕하세요.
unsigned int a = 0xfffaffff;
unsigned int b = 0x3f0fbbba;
위와 같을 경우 a 의 각각의 bit 와 b 와 비교 하여 b 의 bit 가 1 로 세팅 되어 있을경우 해당하는 a 의 비트를 0 으로 만들고 싶습니다. (단 a의 해당하는 비트가 0 이면 상관 없습니다.)
제 생각에는 b 의 1의 보수를 구해서 & 연산을 하면 될거 같은데 b 에 대한 1 의 보수를 구하려면 어떻게 해주어야 하나요?
좋은 생각이 떠오르지 않습니다. 조언 좀 부탁 드립니다.
unsigned int a = 0xfffaffff; unsigned int b = 0x3f0fbbba; /* 질문 1. 이런 루틴이면 될까요? */ a &= (b의 1의 보수) /* 질문 2. --> b의 1에대한 보수를 어떻게 구할 수 있나요? */
Forums:
간단하게 비트 부정연산자(~) 가 있지요..'!' 는 논리부정.. 0
간단하게 비트 부정연산자(~) 가 있지요..
'!' 는 논리부정.. 0이 아닌값을 false로 false를 true로..
'~' 는 비트부정.. 0인비트를 1로 1인비트를 0으로..
To be or not to be.
That is the question.
뺄셈을 논리연산 및 덧셈만으로 표현- 덧셈은 Half Adder, F
뺄셈을 논리연산 및 덧셈만으로 표현
- 덧셈은 Half Adder, Full Adder등을 논리회로로 구현한다는...
- 뺄셈은 덧셈으로 표현가능하다는.... 물론, 논리연산이 필요하다는
- 아~ 하다가 보면 모든 연산은 덧셈으로 구현가능하다는...
* 수학적 표현
i - j
* 논리연산에 의한 표현(+연산은 논리연산으로 구현했다는 가정)
i+(j의 2의 보수)
2의보수? ex) A의 2의 보수= Not A + 1
따라서, 다음과 같다.
i-j = i+(~j+1)
예제)
댓글 달기