栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

获取尾随的1位数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取尾随的1位数

从伊格纳西奥·巴斯克斯(Ignacio Vazquez-Abrams)那里得到答案,并用计数而不是表格来完成:

b =〜i&(i + 1); //这在尾随的1的左侧给出1b--; //这使我们只需要计算尾随的1b =(b&0x55555555)+((b >> 1)&0x55555555); // 1位数字的2位和b =(b&0x33333333)+((b >> 2)&0x33333333); // 2位数字的4位和b =(b&0x0f0f0f0f)+((b >> 4)&0x0f0f0f0f); // 8位和4位数字b =(b&0x00ff00ff)+((b >> 8)&0x00ff00ff); // 8位数字的16位和b =(b&0x0000ffff)+((b >> 16)&0x0000ffff); // 16位数字的总和

b的末尾将包含1的计数(掩码,加法和移位计数1)。除非我当然喜欢。使用前进行测试。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569138.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号