在看《深入理解计算机系统》看到这个小测试,很有意识就贴上来了。
void inplace_swap(int *x, int *y)
{
*x = *x ^ *y; /* step 1 */
*y = *x ^ *y; /* step 2 */
*x = *x ^ *y; /* step 3 */
}
这个小程序可以交换x,y指针所指的内容。的确是这样的,当然这样做不一定比我们通常使用中间变量来交换要快,只是测试好玩用哦。
作者写这个的目的是想展示布尔环的用法。哎,什么是布尔环?不太很明确,感觉自己数学学的还不错的,发现也有不是很懂的地方,大学的时候没怎么学好(离散数学没怎么学好啊,布尔代数、集合计算部分有缺陷)
从这个小地方我想到一个在加密的时候有个很简单的加密算法就是:
明文数据 ^ a = 密文数据
密文数据 ^ a = 明文数据
a在自己写代码的时候设置为比较复杂点数据就可以了,这只是简单的加密哦。要破解起来也应该比较容易了。
阅读(1914) | 评论(0) | 转发(0) |