exciting
V2EX  ›  问与答

手机号怎么压缩最有效率?

  •  
  •   exciting · Nov 20, 2020 · 2893 views
    This topic created in 2182 days ago, the information mentioned may be changed or developed.

    要存在 redis 中,谢谢各位大佬~

    14 replies  •  2020-11-20 18:33:50 +08:00
    jim9606
    jim9606
    Nov 20, 2020❤️1
    1
    存成一个 64 位整数。
    极限可以用 34 位整数,不过我觉得没必要。
    zooo
    zooo
    Nov 20, 2020
    2
    哈夫曼编码?
    wysnylc
    wysnylc
    Nov 20, 2020
    3
    数字压缩???????
    imn1
    imn1
    Nov 20, 2020
    4
    头三位没几个,5bit 都够用了,后面的也是按 bit,但这样压实用麻烦啊,业务逻辑弱
    Maboroshii
    Maboroshii
    Nov 20, 2020
    5
    没必要吧,可以根据需求预估一下占用内存大小
    xiangyuecn
    xiangyuecn
    Nov 20, 2020
    6
    19999999999 -> 96rherj

    36 进制,只需 7 字节 比 long 省 1 个字节😂
    codyfeng
    codyfeng
    Nov 20, 2020 via Android
    7
    存一个 int64 不能支持其他国家的号码。
    66450146
    66450146
    Nov 20, 2020
    8
    不要考虑空间效率了,安心存字符串吧,存成整数容易遇到业务上的问题……
    exciting
    exciting
    OP
    Nov 20, 2020
    9
    最后选用 64 位了
    CEBBCAT
    CEBBCAT
    Nov 20, 2020
    10
    @zooo #2 哈夫曼是一种取编码的方式,如给 A B C 三个字母取二进制代号,和这个问题没有关系哦
    zooo
    zooo
    Nov 20, 2020
    11
    @CEBBCAT 噢噢 这样呀
    shenqi
    shenqi
    Nov 20, 2020
    12
    0-9a-zA-Z, 这里面已经能达到 52 个字符,简单点弄个 52 进制,

    难的,把所有的单字符都用上,例如标点符号各种,一个字符进制加 1,如果你又 19999999999 个字符,那这个你就能到长度 1 了。
    (这个映射长度也 19999999999,有点。。。)
    CEBBCAT
    CEBBCAT
    Nov 20, 2020 via Android
    13
    几亿用户啊这是
    sujin190
    sujin190
    Nov 20, 2020
    14
    8 字节可以满保存 19 个数字了吧,就算给国家三位代码也戳戳有余了吧,有哪个国家的电话号码有 16 位那么长的么?这么长似乎也记不住的吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4622 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:27 · PVG 09:27 · LAX 17:27 · JFK 20:27
    ♥ Do have faith in what you're doing.