|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1690143 |
25 |
2015-12
1690143
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (734) |
정은준1 |
2014-05 |
5155748 |
0 |
2014-05
5155748
1 정은준1
|
43805 |
아답텍 5XXX 시리즈 일반 데이터 하드를 연결해 JBOD disk 만들시 삭제여부 (2) |
올빼미잠와 |
2016-07 |
4620 |
0 |
2016-07
4620
1 올빼미잠와
|
43804 |
z820 케이스 열기 질문? (7) |
정진수 |
2014-05 |
4620 |
0 |
2014-05
4620
1 정진수
|
43803 |
dell t5500 구하고 윈도우7깔아는데 (1) |
최시영 |
2015-10 |
4620 |
0 |
2015-10
4620
1 최시영
|
43802 |
eBay 이용 시 결재관련 궁금한 점이 있습니다. (3) |
회로쟁이 |
2014-05 |
4619 |
0 |
2014-05
4619
1 회로쟁이
|
43801 |
무료 VPN 추천 부탁드립니다. (3) |
여주이상돈 |
2016-03 |
4619 |
0 |
2016-03
4619
1 여주이상돈
|
43800 |
라이젠 3500x + Asus A320M-gaming인데...power now가 없던데 혹시 아시는분? (6) |
류넨아이스 |
2019-11 |
4619 |
0 |
2019-11
4619
1 류넨아이스
|
43799 |
속도가 이상합니다. (3) |
이상열 |
2006-11 |
4619 |
27 |
2006-11
4619
1 이상열
|
43798 |
j3355b 윈도우 10 못쓸 수준인가요? (13) |
inquisitive |
2023-11 |
4619 |
0 |
2023-11
4619
1 inquisitive
|
43797 |
Oracle 복구 관련 질문 드립니다. (14) |
mojo0416 |
2016-03 |
4619 |
0 |
2016-03
4619
1 mojo0416
|
43796 |
모니터 암 추천 부탁드립니다. (2) |
audacity |
2016-08 |
4619 |
0 |
2016-08
4619
1 audacity
|
43795 |
슈퍼마이크로X8ste i7 990X 지원하는지 궁금합니다 (2) |
제타 |
2017-01 |
4619 |
0 |
2017-01
4619
1 제타
|
43794 |
x7dae 보드 팬 rpm 조절 못 하나요? (3) |
홍정환 |
2007-05 |
4619 |
10 |
2007-05
4619
1 홍정환
|
43793 |
쿨러를 찾고 있습니다. (5) |
잔디 |
2018-05 |
4619 |
0 |
2018-05
4619
1 잔디
|
43792 |
Juniper, Cisco L2 스위치에서 uplink 포트 찾는 방법이 있는지 궁금합니다. (4) |
집구석 |
2021-03 |
4619 |
0 |
2021-03
4619
1 집구석
|
43791 |
제로(씬) 클라이언트 통관문의 (2) |
빠시온 |
2014-06 |
4619 |
1 |
2014-06
4619
1 빠시온
|
43790 |
일본의flash file을 구하려면... |
윤호용 |
2006-11 |
4619 |
39 |
2006-11
4619
1 윤호용
|
43789 |
디스크를 교체했는데 어떻게 해야하나요? (2) |
나라사랑 |
2018-01 |
4618 |
0 |
2018-01
4618
1 나라사랑
|
43788 |
서버에 SSD를 효율적으로 사용하는 방법에서 몇가지 문의 드립니다. (3) |
블랙 |
2015-06 |
4618 |
0 |
2015-06
4618
1 블랙
|
43787 |
광 오디오 선택기는 있는데... 일반적인 아나로그5.1채널에 대해서는 선택기가 없고 … (2) |
김건우 |
2015-02 |
4618 |
1 |
2015-02
4618
1 김건우
|
43786 |
갑자기 노트북이라니.. (8) |
원낙연 |
2006-10 |
4618 |
22 |
2006-10
4618
1 원낙연
|
int get_msb(int x) {
/* Shift by w-8 */
int shift_val = (sizeof(int)-1)<<3;
/* Arithmetic shift */
int xright = x >> shift_val;
/* Zero all but LSB */
return xright & 0xFF;
}
비트 연산이라고 합니다.
즉 변수의 값이 들어오면 변수의 값이 어떻게 되나 확인하고 비트 라이트로 몇번째 의 값이 작은지 큰지 물어 보고 값을 리턴 하는것입니다.
비트연산 이라고 한번 검색해보세요..
따로 쓰지 말라는 비교문 법칙이 그 표현을 쓰지 말라는것이면 문제 자체는 그냥 귀찮은 조건이 달려있는 수준입니다..
c계열이라면 if(a)일 경우 a가 0이 아니면 TRUE로 만들수 있으니 조건 자체를 그냥 비트 연산으로 하라는 문제로 보입니다..
int를 모두 0으로 채우는건 unsigned int b = 0이면 되고..
int를 모두 1로 채우는건 위에서 b-1하면 되고..
lsb나 msb는 그냥 1이나 -1을 대입하고 시스템에 따라 적당한 비트를 0으로 마스크 시켜 재 확인하면 될겁니다.,.
우측 시프트를 취한다는 문제 자체는 이해가 되지 않습니다.. 리틀/빅엔디안인가.. 그거면 포인터 확인해서 msb나 lsb의 위치 확인만 하면 되는것 같습니다.
제가 무지 즐기던 종목이네요 ㅎㅎ
and or xor not 등의 게이트들만으로 모든 연산은 가능하니까요... 근데 문제를 읽었는데 뭘 하라는건지 잘 모르겠어요 ㅠㅠ 죄송합니다... 좀 쉽게 풀어서 문제를 적어주시면...
c function 으로 만들어 드리겠습니다 ㅋ
쉽게 풀어서 얘기하면 음..
2.61 문제는
a번 문제에서, 만약 인풋이 -1이면, 즉 최상위 부호비트를 포함한 비트가 모두 1이면 리턴값이 1이 나오면 되고 인풋이 양수라서 최상위 부호비트가 0이 되거나 나머지 부호비트가 0이되면 리턴이 0이 되는 프로그램을 짜는 것입니다. 제가 설먕을 잘 못해서ㅠㅠ 이해하셨나요?
c와 d번 문제는 번역이 좀 별로라서 저도 이해하는데 애먹었네요. d번은 최상위 부호비트를 포함한 바이트의 모든 비트. 즉, 상위 8개의 비트를 말합니다.
c번은 반대로 상위 8개를 제외한 모든 비트를 말합니당. 이해하는데 도움이 되셨을지 모르겠네요...ㅜㅜ
2.62문제는 리틀엔디안 빅엔디안에 따른 연산의 차별성에 관련해서 나온 문제인것같은데 저도 이해가 잘 안가서 손을 못대고있네요.. 2.61이라도 도움 주시면 감사하겟습니당
int carry, sum;
carry = (n1 & n2) << 1; // Find bits that are used for carry
sum = n1 ^ n2; // Add each bit, discard carry.
if (sum & carry) // If bits match, add current sum and carry.
return badd(sum, carry);
else
return sum ^ carry; // Return the sum.
}
int bsub(int n1, int n2){
// Add two's complement and return.
return badd(n1, badd(~n2, 1));
}
** 출처
https://stackoverflow.com/questions/12538724/performing-arithmetic-operations-in-binary-using-only-bitwise-operators
2.61.A return !(x ^ -1);
2.61.B return !x;
2.61.C return !((x & 0xff) ^ 0xff);
2.61.D return !get_msb(x);
2.62 return get_msb(x >> 8);
예시로 사용된 get_msg()를 이용해서 함수호출만 없게하면 될 것 같습니다.
여기에 질문하시면 왠만한건 다 해결되는 놀라운 경험을 하실 수 있습니다~