|
[필독] 처음 오시는 분을 위한 안내 (735) |
정은준1 |
2014-05 |
5143167 |
0 |
2014-05
5143167
1 정은준1
|
|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1677359 |
25 |
2015-12
1677359
1 백메가
|
43736 |
RoCEv2 지원 10GbE 스위치를 찾습니다 (10) |
송주환 |
2021-06 |
4572 |
0 |
2021-06
4572
1 송주환
|
43735 |
HP 노트북용 OEM 시디 이미지 좀 구할 수 있을까요? (1) |
GodokNam |
2016-05 |
4572 |
0 |
2016-05
4572
1 GodokNam
|
43734 |
Juniper, Cisco L2 스위치에서 uplink 포트 찾는 방법이 있는지 궁금합니다. (4) |
집구석 |
2021-03 |
4572 |
0 |
2021-03
4572
1 집구석
|
43733 |
웬디 랩터 쓰시는분들.. (15) |
조승현 |
2007-02 |
4572 |
22 |
2007-02
4572
1 조승현
|
43732 |
시퓨 쿨러가 돌고있는데도 시퓨쿨러 방열판이 손대기에 뜨겁고, 심지어 컴이 꺼지는… (18) |
김건우 |
2017-12 |
4572 |
0 |
2017-12
4572
1 김건우
|
43731 |
파일서버 선택의 고민.. (16) |
김영기대전 |
2015-04 |
4572 |
0 |
2015-04
4572
1 김영기대전
|
43730 |
쿼드로 4000에서 6000으로 업그레이드 괜찮을까요? (8) |
jabez033 |
2014-01 |
4572 |
0 |
2014-01
4572
1 jabez033
|
43729 |
hdd 스마트 정보 질문 (2) |
H4CHI |
2016-11 |
4572 |
0 |
2016-11
4572
1 H4CHI
|
43728 |
한보드에 다른 종류 cpu를 꼽을 수 있나요? (8) |
몬스 |
2014-05 |
4572 |
0 |
2014-05
4572
1 몬스
|
43727 |
모니터 백라이트 문의 (11) |
니드 |
2019-06 |
4571 |
0 |
2019-06
4571
1 니드
|
43726 |
랜 wol 전원문의... (3) |
lovemiai |
2016-11 |
4571 |
1 |
2016-11
4571
1 lovemiai
|
43725 |
우분투 서버 설치시 GUI 까지 설치 가능한 파일이 있나요? (5) |
김유중 |
2016-04 |
4571 |
0 |
2016-04
4571
1 김유중
|
43724 |
동영상캡춰 성능문의. (4) |
임현규 |
2007-10 |
4571 |
12 |
2007-10
4571
1 임현규
|
43723 |
웹서버.파일서버로 사용하기에 윈도우를? 아니면 리눅스를 선호하시나요? (9) |
이지포토 |
2014-03 |
4571 |
0 |
2014-03
4571
1 이지포토
|
43722 |
ASUS prime x570 pro 재부팅시 프리징현상 이유가 뭘까요? (8) |
highend |
2020-04 |
4571 |
0 |
2020-04
4571
1 highend
|
43721 |
기가당 저렴 및 가성비 높은 ssd찾다가...명정보거 봤는데..여기직접만드는곳인가요? (9) |
김건우 |
2018-08 |
4571 |
0 |
2018-08
4571
1 김건우
|
43720 |
파이썬 문법? 질문.. (8) |
이건희 |
2016-11 |
4571 |
0 |
2016-11
4571
1 이건희
|
43719 |
리얼 아이피를 무제한으로 변경 해서 쓸수 있는 방법이 있을까요?? (5) |
땅부자 |
2018-10 |
4571 |
0 |
2018-10
4571
1 땅부자
|
43718 |
국도공사 감리의 비리를 처벌받게 하는 가장 효과적인 방법이 있을까요? (7) |
파란꿈 |
2016-04 |
4571 |
2 |
2016-04
4571
1 파란꿈
|
43717 |
웹뷰어가 가능한 네트워크 카메라 어떤게 있을까요? (6) |
강한구 |
2017-02 |
4571 |
0 |
2017-02
4571
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()를 이용해서 함수호출만 없게하면 될 것 같습니다.
여기에 질문하시면 왠만한건 다 해결되는 놀라운 경험을 하실 수 있습니다~