V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
kayseen
V2EX  ›  问与答

扫描二维码(根据 32 位字符串)怎么区分某一类型的产品

  •  
  •   kayseen · Dec 30, 2019 · 1451 views
    This topic created in 2310 days ago, the information mentioned may be changed or developed.
    比如我现在的产品类型有汽车、飞机、火车,
    
    每个类型就是一个 mysql 的表,每个类型下面有无数个产品, 每个产品有一个唯一的 32 位字符串编码,
    
    
    问题来了,请问如何根据某个 32 位的字符串分辨它对应的是什么分类呢?
    
    或者在生成 32 位编码的过程中可以用什么方法加以区分或者控制吗?
    
    10 replies    2019-12-30 11:22:06 +08:00
    b821025551b
        1
    b821025551b  
       Dec 30, 2019
    生成的时候用部分位代表产品,比如
    汽车:v+31
    火车:t+31
    飞机:a+31
    Hyseen
        2
    Hyseen  
       Dec 30, 2019
    前面几位用来标记类别
    nutting
        3
    nutting  
       Dec 30, 2019
    二进制的位生成数字,或者既然是字符串,那任何一位也能区别啊,大不了 1 开头,2 开头,3 开头这种
    kayseen
        4
    kayseen  
    OP
       Dec 30, 2019
    @b821025551b
    @Hyseen
    @nutting
    这个方法我知道,有没有一种方法类似于将一个 32 位的编码经过某国字段的处理,

    例如:
    旧的 32 位编码+9=新的 32 位编码,
    从而通过新的 32 位编码退出旧的 32 位编码和 9
    b821025551b
        5
    b821025551b  
       Dec 30, 2019
    @kayseen #4 需要看你原 32 位字符串的字典表,如果只用到了数字或者只用到了小写,可以实现,相当于二进制->10 进制;但是如果你用了大小写+数字,除非往里面添加字符,否则不可能实现。
    kayseen
        6
    kayseen  
    OP
       Dec 30, 2019
    @b821025551b
    我现在是只用到了数字和小写字母, 请问下这个有具体的实现案例或者资料链接吗?
    我用的 python, 貌似找不到这种进制转换编码的实现...
    b821025551b
        7
    b821025551b  
       Dec 30, 2019
    @kayseen #6
    那是可以搞的,其实就是 36 进制->62 进制(或者在你这个应用中,37-62 都可以满足)。
    实现思想就是 2\8\10\16 进制互转的拓展,方法在大学第一本编程书上就有。
    kop1989
        8
    kop1989  
       Dec 30, 2019
    ls 的意思就是用大写+小写+数字来压缩你原本的小写+数字 32 位编码,然后在后面就可以添加校验位、计算位甚至是特征位
    b821025551b
        9
    b821025551b  
       Dec 30, 2019
    @kop1989 #8 这些是可以实现,但是初衷还是要实现 4L 说的,新码和老码可以互相转换,因为 LZ 可能要去兼容已经生成的 id。
    kayseen
        10
    kayseen  
    OP
       Dec 30, 2019
    @b821025551b
    是的,场景确实就是这样的,十分感谢提示啊,具体实现我再搞搞...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1210 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 17:57 · PVG 01:57 · LAX 10:57 · JFK 13:57
    ♥ Do have faith in what you're doing.