какова цель BitSet valueOf в методе fromString - PullRequest
0 голосов
/ 23 мая 2018

Буду признателен за объяснение того, что именно делает эта строка.

BitSet.valueOf(new long[] { Long.parseLong(s, 2) });

Хотя этот пример кода, опубликованный FauxFaus , действительно помог мне понять использование BitSet, я не нахожуЦель вышеуказанной строки или почему.Вот полный пример:

package com.tutorialspoint;
import java.util.*;
import java.util.BitSet;
public class TimeZoneDemo {
public static void main(String[] args) {
    BitSet bits1 = fromString("1000001");
    BitSet bits2 = fromString("1111111");
    System.out.println(toString(bits1)); // prints 1000001
    System.out.println(toString(bits2)); // prints 1111111

    bits2.and(bits1);

    System.out.println(toString(bits2)); // prints 1000001
}

private static BitSet fromString(final String s) {
    System.out.println(BitSet.valueOf(new long[] { Long.parseLong(s, 2) }));
    return BitSet.valueOf(new long[] { Long.parseLong(s, 2) });
}
private static String toString(BitSet bs) {
    return Long.toString(bs.toLongArray()[0], 2);
}
}

Обратите внимание, что я не могу прокомментировать исходный ответ, чтобы спросить ОП.

1 Ответ

0 голосов
/ 23 мая 2018

Long.parseLong(s, 2) анализирует String s как двоичный файл String.Полученный long помещается в массив long и передается в BitSet.valueOf для генерации BitSet, биты которого представляют биты этого long значения.

Причина, по которой BitSet.valueOf принимает *Массив 1013 * вместо одного long позволяет создавать BitSet s, имеющий более 64 бит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...