-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBitCounter.java
More file actions
38 lines (31 loc) · 868 Bytes
/
BitCounter.java
File metadata and controls
38 lines (31 loc) · 868 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BitCounter {
private int totalSetBits(int number) {
int setBits = 0;
while (number != 0) {
if (number % 2 == 1) {
setBits++;
}
number = number >> 1;
}
return setBits;
}
public BitCounter(String filename) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new FileReader(filename));
String line;
int number;
while ((line = br.readLine()) != null) {
number = Integer.valueOf(line).intValue();
System.out.println(totalSetBits(Math.abs(number)));
}
}
public static void main (String[] args) throws IOException {
if (args.length != 1) {
System.out.println("Insufficient number of parameters passed. Exiting.");
System.exit(1);
}
BitCounter bc = new BitCounter(args[0]);
}
}