为什么base64以A而不是0开头?

时间:2017-12-13 07:42:58

标签: base64

大多数编号系统从零开始,经过基数为10的数字,然后在基数为10的数字用尽后转到字母:

Binary:      0,1  
Octal:       0,1,2,3,4,5,6,7  
Decimal:     0,1,2,3,4,5,6,7,8,9   
Hexidecimal: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

即使字符的ascii顺序也有数字在字母之前。

Base64编码方案做了不同的事情:

    ┌──────┬──────────┬┬──────┬──────────┬┬──────┬──────────┬┬──────┬──────────┐
    │Value │ Encoding ││Value │ Encoding ││Value │ Encoding ││Value │ Encoding │
    ├──────┼──────────┼┼──────┼──────────┼┼──────┼──────────┼┼──────┼──────────┤
    │  0   │    A     ││ 17   │    R     ││ 34   │    i     ││ 51   │    z     │
    │  1   │    B     ││ 18   │    S     ││ 35   │    j     ││ 52   │    0     │
    │  2   │    C     ││ 19   │    T     ││ 36   │    k     ││ 53   │    1     │
    │  3   │    D     ││ 20   │    U     ││ 37   │    l     ││ 54   │    2     │
    │  4   │    E     ││ 21   │    V     ││ 38   │    m     ││ 55   │    3     │
    │  5   │    F     ││ 22   │    W     ││ 39   │    n     ││ 56   │    4     │
    │  6   │    G     ││ 23   │    X     ││ 40   │    o     ││ 57   │    5     │
    │  7   │    H     ││ 24   │    Y     ││ 41   │    p     ││ 58   │    6     │
    │  8   │    I     ││ 25   │    Z     ││ 42   │    q     ││ 59   │    7     │
    │  9   │    J     ││ 26   │    a     ││ 43   │    r     ││ 60   │    8     │
    │ 10   │    K     ││ 27   │    b     ││ 44   │    s     ││ 61   │    9     │
    │ 11   │    L     ││ 28   │    c     ││ 45   │    t     ││ 62   │    +     │
    │ 12   │    M     ││ 29   │    d     ││ 46   │    u     ││ 63   │    /     │
    │ 13   │    N     ││ 30   │    e     ││ 47   │    v     ││      │          │
    │ 14   │    O     ││ 31   │    f     ││ 48   │    w     ││(pad) │    =     │
    │ 15   │    P     ││ 32   │    g     ││ 49   │    x     ││      │          │
    │ 16   │    Q     ││ 33   │    h     ││ 50   │    y     ││      │          │
    └──────┴──────────┴┴──────┴──────────┴┴──────┴──────────┴┴──────┴──────────┘

为什么base64选择在数字前做字母?编码0代表的值0是否更有意义?

0 个答案:

没有答案