
C语言
hkhl_235
这个作者很懒,什么都没留下…
展开
-
异或交换变量及陷阱详解
两数异或相同为0, 不同为1不借助中间变量, 异或操作效率高, 节省空间(嵌入式开发)简单讲解一下其交换过程例如 a = 1; b = 0; (异或按二进制位操作, 这里演示就用简单点数字好了)a = a ^ b;b = a ^ b;a = a ^ b;a = 1 ^ 0 = 1;b = 1 ^ 0 = 1;a = 1 ^ 1 = 0;最终 a = 0, b = 1 达到交换的目的然而这种交换却...原创 2018-03-23 20:20:13 · 1633 阅读 · 0 评论 -
由一道编程题学会希尔排序
/**SHELL排序程序。 该方法的特征是一个元素与它间隔为J 的元素进行比较或交换然后逐步缩小这个间隔到1为止。J缩小的规律可以是 J<=J/2或J<=(J+1)/2我们取 J<=J/2取整编程。具体地说方法如下对于N个数据首先让J<=INT(N/2)让X[1]与X[J+1]比较假设数组名XX[2]与X(J+2)比较...X[N-J]与X[N]比较若次序颠倒则互相交换。然...原创 2017-10-11 17:04:14 · 465 阅读 · 0 评论 -
memcopy和memmove的实现与测试
我们会发现memcopy与memmove不论什么情况下测试结果总是相等这就奇怪了, 网上一查都是说memcopy在内存覆盖的情况下会出错,但是为什么结果总是相等呢?那是因为编译器做了优化笔者亲测windows下和linux平台均做了优化然而我们自己编写不优化的my_memcopy在内存覆盖的情况下会发生错误(见下文)下文将用不优化的函数来测试内存覆盖的问题第一种情况下,拷贝重叠的区域不会出现问题,...原创 2018-03-16 13:03:44 · 587 阅读 · 0 评论