|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1677417 |
25 |
2015-12
1677417
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (735) |
정은준1 |
2014-05 |
5143212 |
0 |
2014-05
5143212
1 정은준1
|
43736 |
HP 마이크로 Gen8 옥탑에 SSD 하나더 추가를 하려고합니다. (3) |
테돌아이 |
2015-06 |
4574 |
0 |
2015-06
4574
1 테돌아이
|
43735 |
1151소켓 핀이휘었는데 as해주나요? (5) |
행복하세 |
2017-08 |
4574 |
0 |
2017-08
4574
1 행복하세
|
43734 |
NC150T 4포트 기가비트 콤보스위치 아답터..도움좀 부탁 드립니다. (7) |
다잡아 |
2015-09 |
4574 |
0 |
2015-09
4574
1 다잡아
|
43733 |
페이팔로 결제했던게 취소가 안돼요 (4) |
공돌이에요 |
2016-11 |
4574 |
0 |
2016-11
4574
1 공돌이에요
|
43732 |
das 추천 좀 부탁드리겠습니다 (22) |
곰돌찡 |
2022-03 |
4574 |
0 |
2022-03
4574
1 곰돌찡
|
43731 |
윈도우즈 서버, SQL 구매 관련 질문있습니다. (4) |
조재민 |
2014-01 |
4574 |
0 |
2014-01
4574
1 조재민
|
43730 |
ReFS 정보가 별로 없네요. (2) |
돌아온푸우 |
2014-11 |
4574 |
0 |
2014-11
4574
1 돌아온푸우
|
43729 |
판매했던 P410에 캐쉬가 문제가 있다고 반품 받았습니다. (16) |
김상민 |
2014-03 |
4574 |
0 |
2014-03
4574
1 김상민
|
43728 |
ibm p720 os설치 질문드립니다. |
쿨쿨쿨 |
2018-03 |
4574 |
0 |
2018-03
4574
1 쿨쿨쿨
|
43727 |
PC3(L) 12800R 메모리 사려는데 저 전압이 좋은가요 일반 전압이 좋은가요? (5) |
민사장 |
2019-09 |
4574 |
0 |
2019-09
4574
1 민사장
|
43726 |
VGA 관련 질문외... (1) |
송화식 |
2007-05 |
4574 |
16 |
2007-05
4574
1 송화식
|
43725 |
Juniper, Cisco L2 스위치에서 uplink 포트 찾는 방법이 있는지 궁금합니다. (4) |
집구석 |
2021-03 |
4574 |
0 |
2021-03
4574
1 집구석
|
43724 |
모니터 어댑터 좀 싸게 구할 방법 좀 알려주세요~ (5) |
이엘 |
2015-03 |
4574 |
0 |
2015-03
4574
1 이엘
|
43723 |
24시간 구동시키는 PC 온도 50도 정도인데 괜찮을까요? (7) |
Deltakim |
2021-04 |
4574 |
0 |
2021-04
4574
1 Deltakim
|
43722 |
usb to dc power cable 한국에서 내일 살수있는곳 있을까요? (3) |
노인님 |
2014-02 |
4574 |
0 |
2014-02
4574
1 노인님
|
43721 |
베어트레일 말입니다. (4) |
방o효o문 |
2014-08 |
4574 |
0 |
2014-08
4574
1 방o효o문
|
43720 |
crt만 4대 보관하고 있습니다. (10) |
남경림 |
2007-03 |
4574 |
11 |
2007-03
4574
1 남경림
|
43719 |
무료 VPN 추천 부탁드립니다. (3) |
여주이상돈 |
2016-03 |
4573 |
0 |
2016-03
4573
1 여주이상돈
|
43718 |
플레쉬위에 마우스가 지날때마다 이상한게 뜹니다 (2) |
이종민 |
2006-10 |
4573 |
31 |
2006-10
4573
1 이종민
|
43717 |
선배님들. 레이드 긴급 질문입니다. (19) |
신성공 |
2014-03 |
4573 |
0 |
2014-03
4573
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()를 이용해서 함수호출만 없게하면 될 것 같습니다.
여기에 질문하시면 왠만한건 다 해결되는 놀라운 경험을 하실 수 있습니다~