主要内容

保护位

您可以通过向二进制字追加适当数量的保护位来消除可能的溢出。

对于 2 的补码有符号值,根据最高有效位 (MSB) 的值,用 0 或 1 填充保护位。这称为符号扩展。例如,假设有一个值为 1011 的 4 位 2 的补码数。如果使用符号扩展将此数字的范围扩展到 7 位,则此数字变为 1111011,其值保持不变。

Simulink® 软件仅支持小数数据类型的保护位。对于有符号和无符号小数,保护位都位于默认二进制小数点的左侧。要指定具有保护位的定点对象,请将 fixdt 函数与 fixdt(1,WordLength,(WordLength-1-GuardBits)) 结合使用。例如,通过将输出数据类型设置为 fixdt(1,36,31),可以指定具有 4 个保护位的 36 位有符号小数数据类型。

在 MATLAB® 中,您无法在定义定点类型时显式指定保护位。相反,要模拟保护位的效果并防止溢出,您可以手动将 fi 对象的字长增大到超出数据严格要求的长度。