有一些 2进制文件,比如0111 0001 1001 0011...
我要做一些判断。比如文件中如果寸在0111 1110的话。就把第6个1去掉,然后再从后边补充上1个bit来。
比如 数据为 0111 1110 1001 0001 ,这个时候就要删除第6个1,而后边的1要补充上来,数据就变成了 0111 1101 0010 001...
问一下这样的操作应该如何弄呀。
目前我知道的是从一个流中读取一个字节(8bit),也可以删除掉第6个1,但是如何补充上后边的bit呢,有什么方法可以读取1个bit或是对操作后的2进制文件进行排序后重新读取呢?

解决方案 »

  1.   

    File.ReadAllBytes,可以读出所有的byte写一个函数,把byte[]转成二进制表示的string,可以使用Convert.ToString(int, int)转成二进制的,但是注意如果不够8位要在前面加0。然后对客串进行操作,这个比较简单最后再转换回去
      

  2.   

    简单写了一下,你做个循环或者做个递归就行了
    bytes[0]=Convert.ToByte(Convert.ToByte(bytes[1]<<1&256-255)|bytes[0]);//bytes[0]假设就是你要修改的那个