跳转到内容

车辆识别号码 (VIN 码)/校验位

来自 Wikibooks,开放世界中的开放书籍


这似乎不适用于澳大利亚的 VIN 号码。

VIN 号码中一个相当一致的元素是使用第 9 位作为校验位,北美车辆强制使用,并且即使在该规则之外也相当一致地使用,除了英国,那里不使用校验位。

计算 VIN 校验位的过程如下

  1. 根据下面的音译表,将 VIN 中的每个字母替换为一个数字。
  2. 根据下面的表格,将得到的每个数字乘以其相应的权重。
  3. 将结果相加。
  4. 将和除以 11 并取余数。此余数即为校验位。如果余数为 10,则使用 X 作为校验位。

数字的音译

[编辑 | 编辑源代码]

音译包括根据下表将字母替换为数字。IOQ 不在表中,因为它们不能存在于有效的 VIN 中。数字使用它们自己的值,并且不会因音译而改变。

音译密钥:VIN 解码的值
A: 1 B: 2 C: 3 D: 4 E: 5 F: 6 G: 7 H: 8 N/A
J: 1 K: 2 L: 3 M: 4 N: 5 N/A P: 7 N/A R: 9
S: 2 T: 3 U: 4 V: 5 W: 6 X: 7 Y: 8 Z: 9

计算中使用的权重

[编辑 | 编辑源代码]

以下是 VIN 中每个位置的权重因子。最左边的数字是位置 1。第 9 位是校验位的位置。它已被替换为 0,这将在乘法步骤中将其抵消。

位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
权重 8 7 6 5 4 3 2 10 0 9 8 7 6 5 4 3 2

考虑 VIN 1M8GDM9A_KP042788,其中下划线将是校验位。

VIN 1 M 8 G D M 9 A _ K P 0 4 2 7 8 8
音译 1 4 8 7 4 4 9 1 _ 2 7 0 4 2 7 8 8
权重 8 7 6 5 4 3 2 10 0 9 8 7 6 5 4 3 2
乘积 8 28 48 35 16 12 18 10 0 18 56 0 24 10 28 24 16
  1. VIN 中的每个字母都根据音译表替换为一个数字。VIN 中的数字保持不变。这将导致音译行。
  2. 每个音译后的数字都根据权重表乘以一个权重。每个位置的权重在此处在权重行中复制。逐元素相乘得到乘积行。
  3. 乘积之和为 351。
  4. 将和 351 除以 11,得到余数 10。
  5. 由于余数为 10,因此校验位为 X。

校验位添加到 VIN 中:1M8GDM9AXKP042788

11111111111111111(十七个 1)组成的 VIN 具有有效的校验位。这可以用作验证校验位算法的测试用例。

华夏公益教科书