2.3.2. Bit String to Integer (Stringa di Bit a Intero)
2.3.2. Bit String to Integer (Stringa di Bit a Intero)
La trasformazione bits2int prende come input una sequenza di blen bit e restituisce un intero non negativo che è minore di 2^qlen. Consiste dei seguenti passaggi:
-
La sequenza viene prima troncata o espansa alla lunghezza qlen:
-
se qlen < blen, allora vengono mantenuti i qlen bit più a sinistra, e i bit successivi vengono scartati;
-
altrimenti, vengono aggiunti blen-qlen bit (di valore zero) alla sinistra della sequenza (cioè, prima dei bit di input nell'ordine della sequenza).
-
-
La sequenza risultante viene quindi convertita in un valore intero utilizzando la convenzione big-endian: se i bit di input sono chiamati b_0 (più a sinistra) a b_(qlen-1) (più a destra), allora il valore risultante è:
b_0*2^(qlen-1) + b_1*2^(qlen-2) + ... + b_(qlen-1)*2^0
La trasformazione bits2int può anche essere descritta nel modo seguente: la sequenza di bit di input (di lunghezza blen) viene trasformata in un intero utilizzando la convenzione big-endian. Quindi, se blen è maggiore di qlen, l'intero risultante viene diviso per due elevato alla potenza blen-qlen (divisione euclidea: il resto viene scartato); in molte implementazioni software di aritmetica su grandi interi, quella divisione è equivalente a uno "shift a destra" di blen-qlen bit.