2010-08-09 5 views
1

일부 배열 요소가있는 경우 배열 요소에서 개별 번호를 얻으려면 어떻게해야합니까? buffer[0]?C에서 배열 요소의 개별 번호에 어떻게 액세스 할 수 있습니까?

예를 들어, I는 buffer[0]=0x0605040302 있다고 가정, I는 우선 2,0 후 6 등

+0

게시물을 수정할 수 있습니다. 코드 대신에 blockquote를 사용하십시오. 또한 버퍼의 데이터 유형은 무엇입니까? – Nobody

+0

임씨는이 질문에 놀라움을 표했다. – Zaki

+0

만약 버퍼가 long long int.How 부호없는 배열 요소에서 하나의 자릿수를 추출하겠습니까. – Unicorn

답변

4

배열 요소 콘텐츠 ONE 번호를 추출하려는. 당신은 그것을 밖으로 추출하는 것을 시도하고있다. 마스킹 및 시프트 - & 및 >> 연산자를 찾습니다.

편집 :

마스크가 "0"그리고 당신은 수 중에서 관심의 비트를 분리하자 "1"의 문자열입니다. 16 진수 0xF를 포함하는 마스크는 숫자의 개별 16 진수를 분리하는 데 사용됩니다. 예를 들어 숫자를 쉬프트

num = 0x4321 (= 0100_0011_0010_0001)
mask = 0x00f0 (= 0000_0000_1111_0000)
num & mask = 0x0020 (= 0000_0000_0010_0000)

효과적으로 다수의 필요한 위치에 필요한 비트를 가져온다. 따라서 숫자를 n 위치만큼 오른쪽으로 이동하면 비트 #n이 # 0 위치로 이동합니다.

num = 0x4321 (= 0100_0101_0010_0001)
num >> 8 = 0x0043 (= 0000_0000_0100_0011)

는 두 가지 작업을 결합하고 당신은 당신의 추출 자리가!

관련 문제