怎样理解稍微复杂一点的位运算
蟹妖。现在的提问者总是匿名。long fun_c(unsigned long x){ long val = 0; int i; // 这个循环是把x的分别把每个字节的每个bit加起来 for (i = 0; i \u0026lt; 8; i++) { val += x \u0026amp; 0x0101010101010101L; x \u0026gt;\u0026gt;= 1; } // 这三个相当于把每个字节都加起来 val += (val \u0026gt;\u0026gt; 32); val += (val \u0026gt;\u0026gt; 16); val += (val \u0026gt;\u0026gt; 8); return val \u0026amp; 0xff; // 最后只取最后一个字节的值,因为那就是结果}这个函数这么看,实际上就是算一下x里面有多少个bit是1。原题目中代码是用C写的么?好像连语法都没对啊。一眼看出来是不太可能的,最好的办法就是顺着代码用大脑跑一遍。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
