Przechowywanie zera w BitSet

0

Witam,
mam problem z klasa BitSet.
Potrzebuje przechować liczbę(0-15) na 4 bitach. Z liczbami 1-15 wsyzstko działa, tylko problem mam z zerem.
Np.

BitSet bits= new BitSet(4);
bits.set(0, 4, false); 
byte num = bits.toByteArray()[0]; // tu mi wychodzi błą

nazwa błędu "java.lang.ArrayIndexOutOfBoundsException: 0"

czyli toByteArray() zwraca pustą tablice....

nie wiem o co chodzi.

pomóżcie, z góry dzięki :)

0

Udało mi się samemu rozwiązać problem.
Napisałem własną funkcję toByte(). :)

Oto jej kod

public byte toByte() 
{
	byte b = 0;
	for (int i = 0; i < n; i++) 
	{
		if (bits.get(i)) 
		{
			b |= 1 << (i % 8);
	           }
	}
	return b;
}

Topic do zamknięcia :)

0

A nie możesz po prostu sprawdzić długości zwróconej tablicy? Ewentualnie możesz trzymać liczby 16 - 31 zamiast 0 - 15 i przy wyciąganiu ANDować z maską 15.

1 użytkowników online, w tym zalogowanych: 0, gości: 1