19 lines
364 B
Prolog
19 lines
364 B
Prolog
FUNCTION get_bits, input, bit_n, order_flag
|
|
|
|
IF (bit_n EQ 32) THEN x = ULONG(input, 0, 1) ELSE $
|
|
IF (bit_n EQ 16) THEN x = UINT(input, 0, 1) ELSE STOP
|
|
|
|
|
|
bit = LONARR(bit_n)
|
|
|
|
FOR j = 0, bit_n-1 DO $
|
|
BEGIN
|
|
bit[bit_n-j-1] = x MOD 2L
|
|
x = x / 2L
|
|
ENDFOR
|
|
|
|
IF (order_flag EQ 0) THEN RETURN, bit $
|
|
ELSE RETURN, REVERSE(bit)
|
|
|
|
|
|
END |