您的位置:程序门 -> vb -> 基础类



一个八进制和十六进制转二进制的奇妙方法


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个八进制和十六进制转二进制的奇妙方法
发表于:2008-01-08 14:48:29 楼主
近来没事,翻看网上关于进制转换的文章,发现八进制与十六进制转二进制的方法都很麻烦,因此写个简单一点的方法,原理都一样,只是想法叫奇妙,感觉还比较好,抛出来供大家参考。

public   function   octtobin(byval   soct   as   string)   as   string
        const   s1   =   "0001011100",   s2   =   "01253764"
        dim   i   as   integer,   sbin   as   string
        for   i   =   1   to   len(soct)
                sbin   =   sbin   &   mid(s1,   instr(1,   s2,   mid(soct,   i,   1)),   3)
        next   i
        octtobin   =   sbin
end   function

public   function   hextobin(byval   shex   as   string)   as   string
        const   s1   =   "0000101001101111000",   s2   =   "0125a4936db7fec8"
        dim   i   as   integer,   sbin   as   string
        shex   =   ucase(shex)
        for   i   =   1   to   len(shex)
                sbin   =   sbin   &   mid(s1,   instr(1,   s2,   mid(shex,   i,   1)),   4)
        next   i
        hextobin   =   sbin
end   function
发表于:2008-01-08 16:17:521楼 得分:0
不错
xuexi
发表于:2008-01-08 16:21:022楼 得分:0
看看..
发表于:2008-01-08 16:50:313楼 得分:0
想法比较巧妙,但是以前在哪见过几位高人讨论,说这样速度或者效率会受影响,不过自己没试过。
发表于:2008-01-09 08:21:344楼 得分:0
相同方法,附上二进制转八进制和十六进制代码

public   function   bintooct(byval   sbin   as   string)   as   string
        const   s1   =   "0001011100",   s2   =   "01253764"
        dim   i   as   integer,   soct   as   string
        sbin   =   string(2   -   (len(sbin)   -   1)   mod   3,   "0")   &   sbin
        for   i   =   1   to   len(sbin)   step   3
                soct   =   soct   &   mid(s2,   instr(1,   s1,   mid(sbin,   i,   3)),   1)
        next   i
        bintooct   =   soct
end   function

public   function   bintohex(byval   sbin   as   string)   as   string
        const   s1   =   "0000101001101111000",   s2   =   "0125a4936db7fec8"
        dim   i   as   integer,   shex   as   string
        sbin   =   string(3   -   (len(sbin)   -   1)   mod   4,   "0")   &   sbin
        for   i   =   1   to   len(sbin)   step   4
                shex   =   shex   &   mid(s2,   instr(1,   s1,   mid(sbin,   i,   4)),   1)
        next   i
        bintohex   =   shex
end   function


快速检索

最新资讯
热门点击