Passa al contenuto principale

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:

  1. 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).

  2. 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.