|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1791299 |
25 |
2015-12
1791299
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (737) |
정은준1 |
2014-05 |
5266381 |
0 |
2014-05
5266381
1 정은준1
|
77193 |
스마트폰용 홈페이지 만들려고 하는데... 도서 추천 (3) |
문양호 |
2010-03 |
9249 |
0 |
2010-03
9249
1 문양호
|
77192 |
Mikrotic nerinstall시 콘솔케이블? (5) |
lovei |
2021-12 |
2159 |
0 |
2021-12
2159
1 lovei
|
77191 |
원도우 보완 XP 스마트 시크리트가 작동하면서 인터넷 및 등 안됩니다. (3) |
왕용필 |
2010-04 |
8552 |
0 |
2010-04
8552
1 왕용필
|
77190 |
iSCSI 멀티코어 vs 싱글코어 (6) |
컴박 |
2017-01 |
4818 |
0 |
2017-01
4818
1 컴박
|
77189 |
3COM 4200G 를 일반 스위치처럼 셋팅하고 싶습니다. (4) |
성투불패 |
2019-05 |
5560 |
0 |
2019-05
5560
1 성투불패
|
77188 |
서버 지식이 초보입니다..^^...cpu 등 많은것이 궁금해서요..ㅜㅜ (3) |
보탕 |
2016-02 |
4431 |
0 |
2016-02
4431
1 보탕
|
77187 |
일본에 간다고 하는데요? (4) |
여주농민76 |
2017-01 |
4265 |
0 |
2017-01
4265
1 여주농민76
|
77186 |
컴퓨터 재연결후 부팅시 삑삑 소리가 납니다. (10) |
영산회상 |
2023-08 |
3197 |
0 |
2023-08
3197
1 영산회상
|
77185 |
링크 수집 어플 저작권등 문제에 관해 여쭤봅니다 |
서정석 |
2013-05 |
6121 |
0 |
2013-05
6121
1 서정석
|
77184 |
VPN관련 질문드립니다. (3) |
강민준1 |
2017-01 |
4131 |
0 |
2017-01
4131
1 강민준1
|
77183 |
[해결] RAID 장난치다가 HDD 5개 날렸습니다ㅠ (9) |
witbox |
2023-08 |
2837 |
0 |
2023-08
2837
1 witbox
|
77182 |
블랙프라이데이 때 보통 어디서 구매를 하시는지요...? (2) |
대한민국 |
2014-11 |
4217 |
0 |
2014-11
4217
1 대한민국
|
77181 |
N54L 자동켜짐, 자동꺼짐 어찌해야하나요? (3) |
악땅 |
2013-06 |
8392 |
0 |
2013-06
8392
1 악땅
|
77180 |
바이오스 업데이트 질문 (1) |
멍길이 |
2014-11 |
3682 |
0 |
2014-11
3682
1 멍길이
|
77179 |
안드로이드 폰 추천좀 해주세요 (11) |
무아 |
2017-01 |
5883 |
0 |
2017-01
5883
1 무아
|
77178 |
CINEBENCH 벤치마크 이상함? |
뚜뚜김대원 |
2010-06 |
7108 |
0 |
2010-06
7108
1 뚜뚜김대원
|
77177 |
[ 미크로틱 ] Wireless Hotspot에서 walled garden (4) |
전설속의미… |
2017-01 |
4157 |
0 |
2017-01
4157
1 전설속의미…
|
77176 |
판매 게시판 글 작성 규칙 문의 (2) |
TRUE |
2018-04 |
3525 |
0 |
2018-04
3525
1 TRUE
|
77175 |
HP 올인원 PC 보드이상인지 아답터 불량인지 가늠해 볼수 있을까요? (2) |
classiccha |
2020-08 |
2986 |
0 |
2020-08
2986
1 classiccha
|
77174 |
혹시 이렇게 생긴 선정리 집게 어디서 구매 가능한지 아시는분 ? (2) |
캔위드 |
2017-01 |
7492 |
0 |
2017-01
7492
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()를 이용해서 함수호출만 없게하면 될 것 같습니다.
여기에 질문하시면 왠만한건 다 해결되는 놀라운 경험을 하실 수 있습니다~