Operacje bitowe

Operacje bitowe

Przypomnijmy, że liczbę całkowitą można zapisać w postaci dziesiętnej, binarnej lub szesnastkowej:

13 (dziesiętnie) = 0b1101 = 0xd

> Funkcje binString i hexString pozwalają uzyskać odpowiednio binarną i szesnastkową reprezentację liczby całkowitej.

Umiejętność operowania na wartościach binarnych pozwala optymalizować etapy często wykonywanych obliczeń oraz szybko manipulować seriami wartości logicznych.

Czym jest liczba binarna

Liczba binarna może reprezentować zarówno liczbę, jak i tablicę wartości logicznych. Ponieważ liczby całkowite są 64-bitowe, w jednej liczbie całkowitej można zapisać 64 wartości logiczne. W dalszej części przyjmujemy, że bit równy 1 odpowiada wartości true, a bit równy 0 — wartości false.

Dostępne operatory i funkcje

Operatory bitowe LeekScriptu to:

Operacje na bitach ułatwiają też dedykowane funkcje: testBit, setBit, bitCount, bitLength, trailingZeros i leadingZeros.

Aby operować na liczbach całkowitych dłuższych niż 64 bity, zobacz BigInteger.

Maski bitowe

Maski bitowe służą do odczytywania wartości bitów lub grup bitów danej liczby.

Odczytanie wartości bitu o indeksie N

Aby odczytać wartość o indeksie N:

Odczytanie wartości N kolejnych bitów

Aby odczytać wartość N ostatnich bitów:

Gdzie 0b111...111 to liczba binarna złożona z N jedynek, czyli równoważna 2**N-1.