漂亮代码列表(Cool Code list)

阅读: 评论:0

漂亮代码列表(Cool Code list)

漂亮代码列表(Cool Code list)

漂亮代码列表(CoolCode list)

  这里是些聪明的C和C++的诀窍——我曾经试着坚持写那些的确比一般方法更快或者更紧凑简洁的代码——或者可能只是在页面中看起来很漂亮的代码——但是这只是私人收集,所以我会破例采用一些其他的,如果我确实很喜欢。

除非特别说明,否则下面提到的所有的变量都是无符号32位整型变量。


1、翻转一个32位字的所有位


我在一个Linux幸运饼干编程发现了这个

  n = ((n >>  1) & 0x55555555) | ((n <<  1) & 0xaaaaaaaa) ;n = ((n >>  2) & 0x33333333) | ((n <<  2) & 0xcccccccc) ;n = ((n >>  4) & 0x0f0f0f0f) | ((n <<  4) & 0xf0f0f0f0) ;n = ((n >>  8) & 0x00ff00ff) | ((n <<  8) & 0xff00ff00) ;n = ((n >> 16) & 0x0000ffff) | ((n << 16) & 0xffff0000) ;

你能够很容易的变形为其他字大小。

2、计算一个32位字中“1”的个数


John C. Wren十分友好的将这个算法发给了我。它看起来跟前一个算法惊人的相似。

  n = (n & 0x55555555) + ((n & 0xaaaaaaaa) >> 1);n = (n & 0x33333333) + ((n & 0xcccccccc) >> 2);n = (n & 0x0f0f0f0f) + ((n & 0xf0f0f0f0) >> 4);n = (n & 0x00ff00ff) + ((n & 0xff00ff00) >> 8);n = (n & 0x0000ffff) + ((n & 0xffff0000) >> 16);

本文发布于:2024-02-02 14:22:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170685494644388.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:漂亮   代码   列表   list   Code
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23