首页 > 代码库 > [skill] 异或
[skill] 异或
都怪学习不好,或者老师教的不好。虽然知道异或的算法,但是始终不明白,到底有什么意义。。。直到今天,终于明白了。
还是应该怪我学的不好,不能怪老师。
今天有一个应用场景,写一个函数。这是一个hash表的插入函数,实现的是tcp/ip的流存储。输入是一个以太包,为了在这个表的存下双向包。
需要定义一个hashkey的生成规则。这个规则是,ip+port小的放在前面,大的放在后面,共同组成一个key。所以我需要一个外部的变量来标识
一个以太包在生成key的时候,是否做了源目的信息的对掉。用0/1表示。然后通过这个值来确定将以太包保存在server list里还是client list里。
如: 0表示server list; 1 表示 client list
但是实际上,在这个函数的外部,又有一个大逻辑。这个外部逻辑可以提供一个输入代表此包属于server list 还是 client list。此逻辑也有 0/1 表示。
于是,当这个值为1的时候,函数里的0便代表client list, 而1便代表server list了。
这个逻辑的实现,便可以用 两个变量异或。V
PS:事实上,以上逻辑并不严谨。而我的代码最终实现的时候,也不是这样的。详细的最终逻辑可以参考代码。
但是,思路已经说明了异或是什么!。
[skill] 异或
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。