0 / 0
Go back to the English version of the documentation
Operacje bitowe na liczbach całkowitych
Last updated: 04 lip 2023
Operacje bitowe liczby całkowitej (SPSS Modeler)

Te funkcje pozwalają na manipulowanie liczbami całkowitymi jako ciągami bitów w kodzie uzupełnień do dwóch, gdzie pozycja bitu N ma wagę 2**N.

Bity są numerowane od 0. Te operacje działają tak jakby bit znaku liczby całkowitej był rozszerzany w nieskończoność w lewą stronę. Więc wszędzie powyżej jego najbardziej znaczącego bitu dodatnia liczba całkowita ma 0 bitów, a ujemna liczba całkowita ma 1 bit.

Tabela 1. CLEM bitowe operacje całkowitoliczbowe
funkcjonalność Wynik Opis
~~ INT1 Liczba całkowita Tworzy bitowe dopełnienie liczby całkowitej LCAŁK1. Czyli wynik zawiera 1 na każdej pozycji bitowej, dla której LCAŁK1 ma 0. Zawsze jest to prawdą, że ~~ INT = –(INT + 1).
INT1 || INT2 Liczba całkowita Wynikiem tej operacji jest bitowe "inclusive or" z LCAŁK1 i LCAŁK2. Czyli wynik zawiera 1 na każdej pozycji bitowej, która zawiera 1 w LCAŁK1 lub LCAŁK2 lub w obydwu.
INT1 ||/& INT2 Liczba całkowita Wynikiem tej operacji jest bitowe "exclusive or" z LCAŁK1 i LCAŁK2. Czyli wynik zawiera 1 na każdej pozycji bitowej, która zawiera 1 w LCAŁK1 lub LCAŁK2, ale nie w obydwu.
INT1 && INT2 Liczba całkowita Wynikiem jest bitowe "and" liczb całkowitych LCAŁK1 i LCAŁK2. Czyli wynik zawiera 1 na każdej pozycji bitowej, na której 1 występuje i w LCAŁK1, i w LCAŁK2.
INT1 &&~~ INT2 Liczba całkowita Wynikiem jest bitowe "and" dla liczby LCAŁK1 oraz bitowe dopełnienie LCAŁK2. Czyli wynik zawiera 1 na każdej pozycji bitowej, która zawiera 1 w LCAŁK1 i 0 w LCAŁK2. Jest to równoważne INT1 && (~~INT2) i jest przydatne do czyszczenia bitów CAŁK1 ustawionych w CAŁK2.
INT << N Liczba całkowita Tworzy ciąg bitów LCAŁK1 przesunięty w lewo o N miejsc. Wartość ujemna N powoduje przesunięcie w prawo.
INT >> N Liczba całkowita Tworzy ciąg bitów LCAŁK1 przesunięty w prawo o N miejsc. Wartość ujemna N powoduje przesunięcie w lewo.
INT1 &&=_0 INT2 Wartość boolowska Odpowiednik wyrażenia boolowskiego INT1 && INT2 /== 0, ale bardziej wydajny.
INT1 &&/=_0 INT2 Wartość boolowska Odpowiednik wyrażenia boolowskiego INT1 && INT2 == 0, ale bardziej wydajny.
integer_bitcount(INT) Liczba całkowita Zlicza liczbę bitów 1 lub 0 w dopełnieniu do dwóch reprezentacji LCAŁK. Jeśli wartość LCAŁK jest inna niż ujemna, N jest liczbą bitów 1. Jeśli wartość LCAŁK jest ujemna, N jest liczbą bitów 0. Ze względu na rozszerzenie znaku istnieje nieskończona liczba bitów 0 w nieujemnej liczbie całkowitej lub bitów 1 w ujemnej liczbie całkowitej. Zawsze ma to miejsce, gdy integer_bitcount(INT) = integer_bitcount(-(INT+1)).
integer_leastbit(INT) Liczba całkowita Zwraca pozycję bitu N najmniej znaczącego zbioru bitów w liczbie całkowitej LCAŁK. N jest to największa potęga 2, przez którą wartość LCAŁK dzieli się bez reszty.
integer_length(INT) Liczba całkowita Zwraca długość bitową LCAŁK jako liczbę całkowitą w kodzie uzupełnień do dwóch. Oznacza to, że N jest najmniejszą liczbą całkowitą spełniającą warunek INT < (1 << N) if INT >= 0 INT >= (–1 << N) if INT < 0. Jeśli wartość LCAŁK jest nieujemna, reprezentacja LCAŁK w postaci liczby całkowitej bez znaku wymaga zmiennej o długości co najmniej N bitów. Co najmniej N+1 bitów jest wymaganych w celu utworzenia reprezentacji LCAŁK jako liczby całkowitej ze znakiem (bez względu na znak).
testbit(INT, N) Wartość boolowska Testuje bit w pozycji N w liczbie całkowitej LCAŁK i zwraca stan bitu N jako wartość logiczną, która ma wartość true dla 1 i false dla 0.
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more