我现在要用0,1表示一组事物的某属性。
觉得用Integer类型的话会浪费空间,想用
dim type() as byte
然后给type的每bit位设置0或1
除了每8位算出一个值赋给type(i),
如:
属性顺序为
10110111

type(i)=183可不可以一个bit位一个bit位赋值呀??

解决方案 »

  1.   

    Integer类型的话会浪费空间浪费不了多少
    byte和Integer转换没视过
      

  2.   

    你可以直接给type(i)赋值啊  10进制--2进制一一对应哦
    Integer对于那串0,1不是很长可能很适用
      

  3.   

    反正是0,1 ----可以试试string与integer之间,小心溢出
      

  4.   

    VB中对位的处理比较麻烦,在目前PC机内存一般不会太紧张的前提下,在效率与存储量相比较时,我建议你用BYTE来处理比较好:每个byte变量就是0或1,这样处理起来的效率比较高,编程也简单。
    除非你的数组会很大很大........
      

  5.   

    //我现在要用0,1表示一组事物的某属性。
    //觉得用Integer类型的话会浪费空间你可以参考一下C/C++的做法,声明成Integer或者Long,需要设什么位,就用Or,需要去掉什么位,就用And Not。用Byte浪费,用Boolean更浪费。因为Boolean和Integer占用的空间相同——16bit。
      

  6.   

    呵呵,现在的机器,你就可着劲的浪费吧~:)我通常都声明成long的,听说CPU直接处理的就是long型,所以运行会更快只是听说而已,在哪听说的不记得了,反正是在网上:)
      

  7.   

    这样真的能节省资源吗?一个byte占1字节,一个long占4字节
    byte表示范围为0到255,long表示范围是-2147483648到2147483648关注一下,看高手的回答~
      

  8.   

    可以用AND操作进行.如 10110111  你想知道 第5位(从后面数)是不是 ,你只要和2^(5-1)次方进行AND操作,如果结果不是0,就表示,第5位是0,如果是0,就表示第5位是0.如下:10110111 =&HB7   2^(5-1)=16 =&H10(&HB7 And &H10) = &10  表示第5位是1第四们判断:
    ?(&HB7 and &H08)<>0
    结果为False 表示不是0 其实对于许多BIT操作,可以用数学操作来实现的,
    如右移二位,可以用 \ 4 来实现,只不过很少有人用这种方法罢了.对于楼上的,这样是不能节省空间,和LONG空间是一样的,只不过可以比较容易的取出1个BYTE罢了.
      

  9.   

    http://www.csdn.net/Develop/read_article.asp?id=27160
      

  10.   

    Dim a As Bytea = a Or &H1
    把第一位赋1
    a = a and &HFE
    把第一位赋0