BitSet представление логического вектора - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю BitSet длины 3, очищаю первые две позиции и устанавливаю последнюю.Ожидается, что мой отладочный вывод BitSet будет что-то вроде {0, 0, 1}.Но на самом деле это {2}.

Реализован полный проект mvn с JUnit 4.11, поддерживающим Testcase.

package org.no_ip.leder.test;

import static org.junit.Assert.assertEquals;

import org.junit.BeforeClass;
import org.junit.Test;

import java.util.BitSet;

public class TestCase1 {

@BeforeClass 
public static void setUpClass() {      
    System.out.println("TestCase1 setup");
}

@Test
public void test1() {

    BitSet ex_result = new BitSet(3);
    BitSet test = new BitSet(3);

    App app = new App();

    test = app.createFromString("100");

    ex_result.clear(0); 
    ex_result.clear(1);
    ex_result.set(2);


    //DEBUG:
    System.out.println(ex_result);
    System.out.println(test);

    assertEquals("app.createFromString(\"100\"): ", ex_result, test);

}
}    

------------------------ Вывод:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.no_ip.leder.test.TestSuite1
TestCase1 setup
{2}
{2}
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.231 sec

Что такое логический битовый набор, представляющий значение "2"?

1 Ответ

0 голосов
/ 13 февраля 2019

Реализация toString() *1001* возвращает десятичное представление всех индексов, для которых установлен бит , а не двоичное представление набора, отсюда и ваш вывод.

См. официальные документы java , как @Arnaud указал в комментариях.

Что представляет собой логический BitSet со значением "2"?

Именно то, что вы сделали в своем коде, это BitSet, где установлен только бит с индексом 2.

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