【问题标题】:Calculating byte alignment using a single or double modulus使用单模或双模计算字节对齐
【发布时间】:2021-04-30 12:00:29
【问题描述】:

如果这对某些人来说似乎很明显,我深表歉意,但我有点放屁。

有人可以确认这两种对齐到 4 字节边界的不同方法在数学上是否等效?

使用单模运算:

int remainderLength = bytes.Length % AlignmentBoundary;
if (remainderLength > 0)
{
    int paddingLength = AlignmentBoundary - remainderLength;
    for (int i = 0; i < paddingLength; i++)
        bytes.Add(0);
}

使用双模运算:

int paddingLength = (AlignmentBoundary - bytes.Length % AlignmentBoundary) % AlignmentBoundary;
for (int i = 0; i < paddingLength; i++)
    bytes.Add(0);

【问题讨论】:

    标签: c# math padding


    【解决方案1】:

    是的,它们在数学上是等价的。

    在第二个选项中,第二个模数可以帮助您在第一个模数为 0 的情况下修复结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      相关资源
      最近更新 更多