跳到主要内容

2.3.2. Bit String to Integer (位串到整数)

2.3.2. Bit String to Integer (位串到整数)

bits2int 转换接受一个 blen 位的序列作为输入, 并输出一个小于 2^qlen 的非负整数.它由以下步骤组成:

  1. 首先将序列截断或扩展到长度 qlen:

    • 如果 qlen < blen, 则保留 qlen 个最左侧的位, 并丢弃后续位;

    • 否则, 将 qlen-blen 个位 (值为零) 添加到序列的左侧 (即, 在序列顺序中的输入位之前).

  2. 然后使用大端约定将结果序列转换为整数值: 如果输入位被称为 b_0 (最左侧) 到 b_(qlen-1) (最右侧), 则结果值为:

    b_0*2^(qlen-1) + b_1*2^(qlen-2) + ... + b_(qlen-1)*2^0

bits2int 转换也可以用以下方式描述: 使用大端约定将输入位序列 (长度为 blen) 转换为整数.然后, 如果 blen 大于 qlen, 则将结果整数除以 2 的 blen-qlen 次方 (欧几里德除法: 丢弃余数); 在大整数算术的许多软件实现中, 该除法等效于向右移位 blen-qlen 位.