안녕하세요. Bentley의 고전 프로그래밍 진주에있는 bitsort 프로그램을 이해하는 데 문제가 있습니다. Bitmask와 Bitset을 처음 사용하기 때문에 이러한 개념을 이해할 수 없습니다. 사실이 프로그램은 그래서 아래에. "어떻게 디스크 파일을 정렬하는?"입니다 어떤 사람이 나에게이 코드를 설명해 주시겠습니까 코드Java에서 비트 정렬 프로그램을 작성하는 방법은 무엇입니까?
#include <stdio.h>
#define BITSPERWORD 32
#define SHIFT 5
#define MASK 0x1F
#define N 10000000
int a[1 + N/BITSPERWORD];
void set(int i) {
a[i>>SHIFT] |= (1<<(i & MASK));
}
void clr(int i) {
a[i>>SHIFT] &= ~(1<<(i & MASK));
}
int test(int i){
return a[i>>SHIFT] & (1<<(i & MASK));
}
int main()
{ int i;
for (i = 0; i < N; i++)
clr(i);
/* Replace above 2 lines with below 3 for word-parallel init
int top = 1 + N/BITSPERWORD;
for (i = 0; i < top; i++)
a[i] = 0;
*/
while (scanf("%d", &i) != EOF)
set(i);
for (i = 0; i < N; i++)
if (test(i))
printf("%d\n", i);
return 0;
}
은? 가능한 경우 자바로 버전을 제공하십시오. 사실, 나는 Java만으로 편안하므로 왜 내가 묻고있다. 숙제가 아닙니다.
안녕하세요 유권자 님, 제가 틀린 점은 무엇입니까? 나는 잘못된 질문을하고 있는가? 가능하다면 설명하십시오. –
Java에 [bitwise operators] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)가 있습니다. 따라서 이식은 매우 간단합니다. 알고리즘을 이해하는 데 도움이됩니다). –
가능한 복제본이 이해 "프로그래밍 진주"bitsort 프로그램] (http://stackoverflow.com/questions/1050253/help-me-understand-this-programming-pearls-bitsort-program) – Borealid