Col*_*ice 32 rar winrar crc file-archiver
我刚刚了解.rev了 WinRAR 文件——例如,如果你有一个由 10 部分组成的 RAR 卷,加上一个.rev(恢复)卷——该.rev卷将能够“修复”任何一个损坏的.rar卷。
这怎么可能?我不明白一个卷如何拥有所有数据来修复任何/所有单独损坏的卷。
我猜想这也许可以代替卷不被“线性”分解,就像我想象的那样,每个 RAR 卷都包含不同的、单独的文件;相反,.rev当 RAR 卷被视为一个连续的位和字节文件时,修复是可能的,可以这么说,并且可能涉及一些 CRC'ish 巫术(啊哼,“修复工作”)来修复损坏的字节。
但我只是不明白你怎么能有 9 个工作卷,其中 1 个损坏,但有一个可以修复任何一个卷的恢复卷。一个卷如何能够保存“所有”卷的数据?
Pau*_*aul 55
让我们举一个非常简单的案例。
您有四个卷和一个恢复卷,每个卷都有 1 位信息:
========================================================
Volumes: = Volume 1 = Volume 2 = Volume 3 = Volume 4 = Recovery =
=----------=----------=----------=----------=----------=
Bits: = 1 = 0 = 1 = 1 = 1 =
========================================================
Run Code Online (Sandbox Code Playgroud)
恢复卷将包含这些位中的每一个XOR d的结果:
1 XOR 0 XOR 1 XOR 1 = 1
Run Code Online (Sandbox Code Playgroud)
因此,我们的恢复卷包含单个位1.
现在,假设第 1 卷失败。
如果我们将剩余的卷 2、3 和 4 与恢复位代替故障卷进行异或,我们得到:
1 XOR 0 XOR 1 XOR 1 = 1
^
Run Code Online (Sandbox Code Playgroud)
所以,这告诉我们第 1 卷包含1,因为它是等式的结果。
让我们假装第 2 卷死了,所以我们用恢复位替换它在等式中的值:
1 XOR 1 XOR 1 XOR 1 = 0
^
Run Code Online (Sandbox Code Playgroud)
所以我们知道第 2 卷包含0,因为它是等式的结果。
如果第 3 卷或第 4 卷失败,它们都会1在这个等式中产生。
因此,如果任何卷发生故障,恢复卷可用于基于剩余卷重建数据。这可能是您可以拥有的最简单的纠错形式。如果两个卷发生故障,您将无法恢复任何内容。
Dav*_*rtz 21
要以一种非常简单的方式来理解这是怎么回事,想象一下恢复卷是否包含其他卷的总和。有了一个数字列表,其中缺少一个,以及它们的总和,你总是可以重建缺失的数字。
例如,考虑这两位数字,13, 88, 17, 43。如果您知道缺少一个数字,并且所有数字之和的最后两位数字是 81,则可以找到缺少的数字。13 + 88 + 17 + 43 = 161。 唯一可以添加到以 81 结尾的两位数的数字是 20。
假设您有 20 并且缺少 43。13 + 88 + 17 + 20 = 138。唯一可以添加到以 81 结尾的两位数的数字是 43。
因此,恢复号码可以让您找到任何一个丢失的号码。