<질문>bit연산에 관한 질문입니다.
글쓴이: saba98 / 작성시간: 목, 2004/04/29 - 1:40오후
이번주에 교수님이 레포트를 내주셨는데
다른건 했는데 이건 정말 어렵내영(머리가 나빠서 그런지)
! ~ & ^ | + << >>
만이용해서 함수를 구현하는건데여(조건문은 안된다고 하네여)
int isGreater(int x, int y)
{
int result=y+(~x+1);
return(result >> 31);
}
식으로여 제가 짠건데, x>y면 1을 리턴, 그렇지 않으면 0을 리턴
그런데 몇가지가 안풀리네염 ㅠㅠ
int bang(int x)인데여 !을 사용하지 않고 위의 연산자로만 구현하라는데
도무지 몇시간을 생각해도 모르겠네여
또 있는데여
int abs(int x)인수를 받고 절대값을 출력한는건데..흠
고수님들 도와주세여.^^
Forums:
bang 이라는 함수가 무슨 일을 해야 하는지 명시하지 않았습니다. 그리
bang 이라는 함수가 무슨 일을 해야 하는지 명시하지 않았습니다. 그리고 그 함수 안에서 ! 를 사용하지 말라고 하고서는 위의 사용가능한 연산자 목록에 있습니다.
그리고 abs 는 정수의 부호비트와 2의 보수 표현만 안다면 쉽게 구현할 수 있습니다. (다만 음수는 양수보다 하나 더 많기 때문에 예외상황을 어떻게 처리하는냐가 문제가 될 수도 있습니다.)
레포트... 열심히 하세요... 혼자서 해결하셔야 나중에 분명히 도움이 됩니다.
p.s. 요즘들어 레포트라는 단어의 빈도도 높아지는 이유가 뭘까요....
비트0 으로 시작은 양수1 로 시작은 음수따라서 앞에있
비트
0 으로 시작은 양수
1 로 시작은 음수
따라서 앞에있는 것을 무조건 0으로 고쳐주면 절대값 아닐까요?
[quote="lkjt"]비트0 으로 시작은 양수1 로 시작은
아니요. 2의 보수로 바꿔야 될 껄요.
재미있는 교수님이군요. 이런 재미있는 문제를 내시다니. 그나저나 bang
재미있는 교수님이군요. 이런 재미있는 문제를 내시다니. 그나저나 bang 은 뭘까요?
세벌 https://sebuls.blogspot.kr/
Re: <질문>bit연산에 관한 질문입니다.
int 가 32bit라는 보장은 있나요?
세벌 https://sebuls.blogspot.kr/
int로 표현할 수 있는 가장 작은 값의 절대값을 표현할 수 있나요? 오
int로 표현할 수 있는 가장 작은 값의 절대값을 표현할 수 있나요? 오버플로우 되지 않을까요?
세벌 https://sebuls.blogspot.kr/
bit조작만으로 할 수 있는 일이 다양합니다. 알려진 바에 의하면 b
bit조작만으로 할 수 있는 일이 다양합니다.
알려진 바에 의하면 bit연산만으로 해낼수 있는 일은
최하위 비트부터 순차적으로 해 나갈 수 있는 일이면 가능합니다.
(필요 충분 조건)
비교, 절대값 변환, 첫번째 0아닌 bit위치 알아내기 등등 뭐 이런건 결국 다 가능합니다만, bit배열을 뒤집는 등의 일은 할 수 없습니다.
댓글 달기