
linux C编程
老王不让用
芝兰生于幽谷,不以无人而不芳; 君子修身立德,不为穷困而改节
展开
-
找出二进制数中bit为1的最(高/低)索引
目录1、迭代法2、二分法3、整形形式输出题目:给定一个整形(unsigned int)数字,输出其二进制数中的bit为1 的最高/低位索引。示例:对于数据0,返回0;数据1,返回1;数据0x80000000,返回32;本文以搜索最低位即最右侧的bit1索引为例。1、迭代法int search_right_one(unsigned int var){ int index = 0; while(var) { index++; if(var & 0x1)原创 2020-09-03 12:03:59 · 8650 阅读 · 1 评论 -
linux C编程:重写 memcpy 函数
目录1、地址重叠2、SSE指令效率提升实现 memcpy 是各个大厂都喜欢出的面试题,主要是因为memcpy存在两个考点:地址重叠、效率提升。由于linux的标准C库中的接口并未解决这两个问题,加上内存拷贝是非常常用的库函数,因此备受面试官的青睐。1、地址重叠linux 用户手册说明 memcpy 不支持地址重叠,加入地址发生重叠则需要通过 memmove来代替,先来看一下memcpy的源码实现:/** * memcpy - Copy one area of memory to原创 2020-09-03 09:27:06 · 2089 阅读 · 0 评论