需求:把一个数据文件,按二进制01方式取成奇偶两组,然后把这两组按需求进行位移后重组。例:二进制文件 1110110001……
奇数组:11100
偶数组:10101
如果我要把奇偶对换 得到1101110010…… 最后存成文件。或者把偶数组位移2位再与奇数组重组等等……我的思路:1、把文件用binaryreader读出,然后把每个字节用 Convert.ToString("", 2) 转成2进制字符串,把所有的字符串连接起来。2、然后for循环把这个字符串分成奇偶两组,根据需求位移,然后再用for循环把这奇偶两组字符串连起来。3、将最后的二进制串转成十六进制存成文件。请指出这种方法是否可行,或者有没有更快捷简单方法,谢谢!
奇数组:11100
偶数组:10101
如果我要把奇偶对换 得到1101110010…… 最后存成文件。或者把偶数组位移2位再与奇数组重组等等……我的思路:1、把文件用binaryreader读出,然后把每个字节用 Convert.ToString("", 2) 转成2进制字符串,把所有的字符串连接起来。2、然后for循环把这个字符串分成奇偶两组,根据需求位移,然后再用for循环把这奇偶两组字符串连起来。3、将最后的二进制串转成十六进制存成文件。请指出这种方法是否可行,或者有没有更快捷简单方法,谢谢!
实现奇偶互换:((data & 10101010) >> 1) | ((data & 01010101) << 1)
data & 01010101取偶数位,结果再向左移一位。
二者相或,就实现字节的奇数位、偶数位互换的功能了