编程之战 第一百八四章 异或运算

小说:编程之战 作者:程序小猿 更新时间:2024-08-06 08:41:20 源网站:顶点小说
  其实,杨成刚才就在思考这个问题了。

  有没有更好的方法来进行数据保存和恢复?

  答案是肯定有的。

  可以使用xor(异或运算)来做奇偶验证!

  一个简单的应用会像是这样:

  首先,把硬盘上的数据分割成几份相同大小的数据块。

  假设原始数据是这样:

  [0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,0]

  我们从中间劈开成2块,分别命名为a和b:

  a:[0,0,0,1,1,1,1,0]

  b:[0,1,0,0,1,0,1,0]

  然后,创建一个备份盘c,用来存储奇偶信息。

  接着,对a和b的每一个相同位置,作异或运算。

  a[0]=0,b[0]=0,异或得0,存入c[0]

  a[1]=0,b[1]=1,异或得1,存入c[1]

  a[2]=0,b[2]=0,异或得0,存入c[2]

  ......

  一趟遍历下来,备份盘c被填充满信息,得到:

  c:[0,1,0,1,0,1,0,0]

  这么做有什么好处呢?

  一旦保存原始数据的a盘或者b盘损坏,可以通过c盘重新计算异或来恢复。

  假设a盘数据丢失了,我们对b和c的每一个相同位置,作异或运算。

  这样就能还原出a盘数据。

  另外,可以观察到一个有趣的现象:

  和镜像保存所需的空间相比,这种方式得到的c盘空间是不是只有一半?

  空间效率大大提高了!

  嗯,就是这种了,得跟项目经理好好谈谈。
为更好的阅读体验,本站章节内容基于百度转码进行转码展示,如有问题请您到源站阅读, 转码声明
八零电子书邀请您进入最专业的小说搜索网站阅读编程之战,编程之战最新章节,编程之战 顶点小说!
可以使用回车、←→快捷键阅读
本站根据您的指令搜索各大小说站得到的链接列表,与本站立场无关
如果版权人认为在本站放置您的作品有损您的利益,请发邮件至,本站确认后将会立即删除。
Copyright©2018 八零电子书