2013-02-04 2 views
-4

부호없는 정수 인수의 2 진 표현에서 _ 생한 = 수.부호없는 int arg의 2 진 표현

예를 들어, 숫자 183는 0b10110111이며,이 무엇을 의미하는지 (11)

누군가가 설명하거나 정교 (예제와 함께) 수의 세 가지 사건이있다?

+1

이 내용을 작성해야합니까? 이와 같은 표준 기능은 없습니다. –

+0

스택 오버플로에 오신 것을 환영합니다. 너무 오래 전에 [FAQ]를 읽어주십시오. 사람들은 진정으로 문제를 해결하려고 시도하고 도움이 필요한 코드를 보여주는 질문보다는 코드를 묻는 질문에 대한 질문을하는 경향이 있습니다. –

+0

나는 그가 숙제 문제의 비문학적인 덩어리를 붙여 놓았다고 생각한다. 그것은 좋지 않았다. 그러나 문제는 코드가 아니라 문제에 대한 설명을 요구하는 것 같습니다. 그는 "발생"이라는 단어에 언어 문제가있을 수 있습니다. – Gene

답변

1

확실히. 0에서 카운트 시작. 각각의 연속적인 비트 쌍을보십시오. 11 인 경우 카운트를 증가시킵니다. 그렇지 않다면하지 마십시오. 귀하의 예제 10,110,111에서

, 연속 쌍이 11이다의

10 01 11 10 01 11 11 

세, 그래서 당신이 구현해야하는 경우 3.

을 반환, 가장 쉬운 방법은보고 아마 2 최하위 비트가 11인지 확인하십시오. 그렇다면 카운터를 증가 시키십시오. 그런 다음 전체 숫자를 한 비트 오른쪽으로 이동하고 반복하십시오. 루프가 1을 모두 이동하면 번호가 0이되므로 루프가 멈출 수 있습니다.이 시점에서 카운터는 응답을 보유합니다. 이 모든 것은 3 줄 또는 4 줄의 코드에서 수행 할 수 있습니다. 실제로이 코드를 작성해야합니다.

0

부호없는 int에 몇 개의 비트가 겹쳐져 있는지 계산합니다.

좀 더 기술적으로 말하면, 인수의 i 번째 비트마다 0 <= i <= 30으로, i 번째 비트가 설정되고 (i+1) 번째 비트가 설정되면 두 개가됩니다. 그들 모두를 세면 당신은 끝이납니다.

관련 문제