谁给个将12位数如mac压缩成6位的函数?

解决方案 »

  1.   

    BYTE Convert(WORD b)
    {
      return (b >> 6) | b;
    }
      

  2.   

    用异或好一点:
    BYTE Convert(WORD b)
    {
      return (b >> 6) ^ b;
    }
      

  3.   

    呵呵,写错了BYTE Convert(WORD b)
    {
      return (b >> 6) ^ (b & 63);
    }
      

  4.   

    从哲学上讲,你这是承认世界万物都是由某一种或几种物质组成的。首先搞懂这个问题。如果能用6位数表示12位数,那岂不是无论多大的文件都能被几个或一个BYTE就搞定?呵呵,这个压缩率恐怕银河系都无“人”能及吧?那我们以后就再也没有网络带宽、存储容量……的顾虑了!    如果谁发明出这种算法,我想图灵、Einstein都会为你折服吧?!
      

  5.   

    6位数表示12位数也不是不可能啊,你给我255个可以见符,比如1-9,a-z,A-Z就可以表示了
      

  6.   

    MAC 是 48 位数 = 6 个字节
    好象不用压缩吧??
      

  7.   

    MAC 是 48 位 = 6 个字节
    好象不用压缩吧??
    不好意思~~多了一个数
      

  8.   

    你把每两个数字用一位Ansic码表示就行了,比如78就用Ansic码为78的字符表示,12位就变成6位了,而且可逆,如果你要把12位数字用6位数字表示,基本不可能,除非这12位数有限制,它的全部表示不超过1000000,就可以且可逆